52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
"""
|
|
FetcherPay Python SDK - Basic Example
|
|
"""
|
|
|
|
import os
|
|
from fetcherpay import FetcherPay
|
|
|
|
# Initialize client
|
|
client = FetcherPay(
|
|
api_key=os.environ.get('FETCHERPAY_API_KEY', 'sandbox'),
|
|
environment='sandbox'
|
|
)
|
|
|
|
|
|
def main():
|
|
try:
|
|
# Create a payment
|
|
print('Creating payment...')
|
|
payment = client.payments.create(
|
|
amount=10000, # $100.00 in cents
|
|
currency='USD',
|
|
source={'payment_method_id': 'pm_bank_123'},
|
|
destination={'payment_method_id': 'pm_merchant_456'},
|
|
rail='auto'
|
|
)
|
|
print(f'Payment created: {payment["id"]} Status: {payment["status"]}')
|
|
|
|
# Retrieve the payment
|
|
print('\nRetrieving payment...')
|
|
retrieved = client.payments.retrieve(payment['id'])
|
|
print(f'Retrieved: {retrieved["id"]} Timeline: {len(retrieved["timeline"])} events')
|
|
|
|
# List payments
|
|
print('\nListing payments...')
|
|
payments = client.payments.list(limit=5)
|
|
print(f'Found {len(payments["data"])} payments')
|
|
|
|
# List ledger accounts
|
|
print('\nListing ledger accounts...')
|
|
accounts = client.ledger.list_accounts()
|
|
print(f'Found {len(accounts["data"])} accounts')
|
|
for acc in accounts['data']:
|
|
print(f' - {acc["name"]}: ${acc["balance"]["available"] / 100} available')
|
|
|
|
except Exception as e:
|
|
print(f'Error: {e}')
|
|
raise
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|