payment_providers

Server methods for generating and paying L402 offers.

source

PaymentRequestRow

 PaymentRequestRow (id:int=UNSET, offer_id:str=UNSET,
                    payment_context_token:str=UNSET,
                    payment_method:str=UNSET, expires_at:str=UNSET,
                    payment_request:dict=UNSET, version:str=UNSET,
                    created_at:str=UNSET)

source

OfferRow

 OfferRow (offer_id:str=UNSET, amount:int=UNSET, currency:str=UNSET,
           description:str=UNSET, payment_methods:list[str]=UNSET,
           title:str=UNSET, type:str=UNSET,
           payment_context_token:str=UNSET, payment_request_url:str=UNSET,
           version:str=UNSET, created_at:str=UNSET)

source

PaymentServer

 PaymentServer
                (payment_request_url:str='http://localhost:8000/payment_re
                quest', lightning_provider=None,
                credit_card_provider=None, onchain_provider=None,
                onchain_supported_assets=['usdc'])

Initialize self. See help(type(self)) for accurate signature.

Type Default Details
payment_request_url str http://localhost:8000/payment_request endpoint to get payment details for an offer
lightning_provider NoneType None provider to generate lightning invoices
credit_card_provider NoneType None provider to generate credit card payment urls
onchain_provider NoneType None provider to generate onchain payment addresses
onchain_supported_assets list [‘usdc’] supported assets for onchain payment

source

L402Response

 L402Response (offers:List[__main__.Offer], payment_context_token:str,
               payment_request_url:str, version:str)

*Usage docs: https://docs.pydantic.dev/2.10/concepts/models/

A base class for creating Pydantic models.

Attributes: class_vars: The names of the class variables defined on the model. private_attributes: Metadata about the private attributes of the model. signature: The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
    This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
    __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.

__pydantic_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
    is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.*

source

Offer

 Offer (amount:int, currency:str, description:str, offer_id:str,
        payment_methods:List[str], title:str, type:str)

*Usage docs: https://docs.pydantic.dev/2.10/concepts/models/

A base class for creating Pydantic models.

Attributes: class_vars: The names of the class variables defined on the model. private_attributes: Metadata about the private attributes of the model. signature: The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
    This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
    __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.

__pydantic_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
    is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.*
ps = PaymentServer()

test_offers = [Offer(
    amount=1,
    currency='USD',
    description='Purchase 1 credit for API access',
    offer_id='offer_c668e0c0',
    payment_methods=['lightning'],
    title='1 Credit Package',
    type='top-up'
)]

ps.create_offers(test_offers)
L402Response(offers=[Offer(amount=1, currency='USD', description='Purchase 1 credit for API access', offer_id='offer_c668e0c0', payment_methods=['lightning'], title='1 Credit Package', type='top-up')], payment_context_token='cb2680f1-2425-41df-9d53-5082e3f15fc1', payment_request_url='http://localhost:8000/payment_request', version='0.2.2')

source

PaymentServer.create_payment_request

 PaymentServer.create_payment_request (offer_id, payment_context_token,
                                       payment_method, chain='base-
                                       mainnet', asset='usdc')

Create a payment request for an offer. Returns a dict with the payment request details.

Type Default Details
offer_id
payment_context_token
payment_method
chain str base-mainnet optional, for onchain payment
asset str usdc optional, for onchain payment