Install
pip install toffeepay-sdk
Configuration
from toffeepay import Toffee
toffee = Toffee(access_token="your-access-token")
Sandbox
toffee = Toffee(access_token="your-sandbox-token", environment="sandbox")
Checkout
Shorthand for creating a payment session:from toffeepay import Item
session = await toffee.checkout(
game_id="your-game-id",
user_id="user-id",
item=Item(title="Gem Pack 50", price=100, currency="USD"),
return_url="https://example.com/return",
)
print(session.url) # redirect the user here
Refund
Shorthand for creating a refund:refund = await toffee.refund(payment_id="pay_123")
Idempotency
Pass an idempotency key to protect against duplicate operations:session = await toffee.checkout(
game_id="game_1",
user_id="user_1",
item=Item(title="Gem Pack 50", price=100, currency="USD"),
return_url="https://example.com/return",
options=RequestOptions(idempotency_key="unique-key-123"),
)
refund = await toffee.refund(
payment_id="pay_123",
options=RequestOptions(idempotency_key="refund-key-456"),
)
Resources
Sessions
resp = await toffee.sessions.create(CreateSessionRequest(...))
session = resp.session
resp = await toffee.sessions.get(GetSessionRequest(id="sess_123"))
session = resp.session
resp = await toffee.sessions.status(GetSessionStatusRequest(id="sess_123"))
status = resp.status
resp = await toffee.sessions.list(ListSessionsRequest(game_id="game_1"))
sessions = resp.sessions
await toffee.sessions.cancel(CancelSessionRequest(id="sess_123"))
Payments
resp = await toffee.payments.get(GetPaymentRequest(id="pay_123"))
payment = resp.payment
resp = await toffee.payments.list(ListPaymentsRequest(game_id="game_1"))
payments = resp.payments
await toffee.payments.complete(CompletePaymentRequest(id="pay_123"))
await toffee.payments.cancel(CancelPaymentRequest(id="pay_123"))
Refunds
resp = await toffee.refunds.create(CreateRefundRequest(payment_id="pay_123"))
refund = resp.refund
resp = await toffee.refunds.get(GetRefundRequest(id="ref_123"))
refund = resp.refund
resp = await toffee.refunds.list(ListRefundsRequest(payment_id="pay_123"))
refunds = resp.refunds
Accounts
resp = await toffee.accounts.get(GetAccountRequest(id="acc_123"))
account = resp.account
resp = await toffee.accounts.list(ListAccountsRequest(game_id="game_1"))
accounts = resp.accounts
Deposits
resp = await toffee.deposits.get(GetDepositRequest(id="dep_123"))
deposit = resp.deposit
resp = await toffee.deposits.list(ListDepositsRequest(account_id="acc_123"))
deposits = resp.deposits