Skip to main content

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