Skip to content

Commit 66f9189

Browse files
SP-754 Code Examples: Python
1 parent bd77970 commit 66f9189

13 files changed

+328
-0
lines changed

examples/General/use_logger.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from bitpay.client import Client
2+
from bitpay.logger.bitpay_logger import BitPayLogger
3+
from bitpay.logger.logger_provider import LoggerProvider
4+
5+
6+
class UseLogger:
7+
8+
def execute(self) -> None:
9+
LoggerProvider.set_logger(BitPayLogger())
10+
client = Client.create_pos_client(self, "someToken")
11+
12+
client.get_invoice(self, "someId")

examples/Merchant/bill_requests.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from bitpay.models.bill.bill import Bill
2+
from bitpay.models.facade import Facade
3+
from examples.client_provider import ClientProvider
4+
5+
6+
class BillRequests:
7+
8+
def create_bill(self) -> None:
9+
client = ClientProvider.create()
10+
11+
bill = Bill()
12+
bill.name = 'someName'
13+
bill.email = '[email protected]'
14+
bill.address1 = 'SomeAddress'
15+
bill.city = 'MyCity'
16+
# ...
17+
18+
client.create_bill(bill, Facade.MERCHANT)
19+
20+
def get_bill(self) -> None:
21+
client = ClientProvider.create()
22+
23+
bill = client.get_bill('someBillId', Facade.MERCHANT)
24+
25+
bills = client.get_bills('draft')
26+
27+
def update_bill(self) -> None:
28+
client = ClientProvider.create()
29+
30+
bill = Bill()
31+
bill.email = '[email protected]'
32+
33+
result = client.update_bill(bill, 'someBillId')
34+
35+
def deliver_bill_via_email(self) -> None:
36+
client = ClientProvider.create()
37+
38+
result = client.deliver_bill('someBillId', 'someBillToken')

examples/Merchant/invoice_requests.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
from bitpay.models.facade import Facade
2+
from bitpay.models.invoice.buyer import Buyer
3+
from bitpay.models.invoice.invoice import Invoice
4+
from examples.client_provider import ClientProvider
5+
6+
7+
class InvoiceRequests:
8+
def create_invoice(self) -> None:
9+
invoice = Invoice()
10+
invoice.full_notifications = True
11+
invoice.extended_notifications = True
12+
invoice.notification_url = "https://test/lJnJg9WW7MtG9GZlPVdj"
13+
invoice.redirect_url = "https://test/lJnJg9WW7MtG9GZlPVdj"
14+
invoice.notification_email = "[email protected]"
15+
16+
buyer = Buyer()
17+
buyer.name = "Test"
18+
buyer.email = "[email protected]"
19+
buyer.address1 = "168 General Grove"
20+
buyer.country = "AD"
21+
buyer.locality = "Port Horizon"
22+
buyer.notify = True
23+
buyer.phone = "+990123456789"
24+
buyer.postal_code = "KY7 1TH"
25+
buyer.region = "New Port"
26+
27+
invoice.buyer = buyer
28+
29+
client = ClientProvider.create()
30+
31+
result = client.create_invoice(invoice, Facade.MERCHANT)
32+
33+
def get_invoice(self) -> None:
34+
client = ClientProvider.create()
35+
36+
invoice_by_id = client.get_invoice('someInvoiceId')
37+
38+
invoice_by_guid = client.get_invoice_by_guid('someGuid')
39+
40+
invoices = client.get_invoices('2023-04-14', '2023-04-17')
41+
42+
def update_invoice(self) -> None:
43+
client = ClientProvider.create()
44+
45+
result = client.update_invoice('someInvoiceId', None, '123123213')
46+
47+
def cancel_invoice(self) -> None:
48+
client = ClientProvider.create()
49+
50+
client.cancel_invoice('someInvoiceId')
51+
52+
client.cancel_invoice_by_guid('someGuid')
53+
54+
def request_invoice_webhook_to_be_resent(self) -> None:
55+
client = ClientProvider.create()
56+
57+
client.request_invoice_notifications('someInvoiceId')

examples/Merchant/ledger_requests.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from examples.client_provider import ClientProvider
2+
3+
4+
class LedgerRequests:
5+
def get_ledgers(self) -> None:
6+
client = ClientProvider.create()
7+
8+
result = client.get_ledgers()
9+
10+
def get_ledger_entries(self) -> None:
11+
client = ClientProvider.create()
12+
13+
result = client.get_ledger_entries('USD', '2023-08-14', '2023-08-22')

examples/Merchant/refund_requests.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from examples.client_provider import ClientProvider
2+
3+
4+
class RefundRequests:
5+
def create_refund(self) -> None:
6+
client = ClientProvider.create()
7+
8+
result = client.create_refund('invoiceId', 12.34)
9+
10+
def update_refund(self) -> None:
11+
client = ClientProvider.create()
12+
13+
client.update_refund('refundId', 'created')
14+
15+
client.update_refund_by_guid('someGuid', 'created')
16+
17+
def get_refund(self) -> None:
18+
client = ClientProvider.create()
19+
20+
client.get_refund('refundId')
21+
22+
client.get_refund_by_guid('someGuid')
23+
24+
def cancel_refund(self) -> None:
25+
client = ClientProvider.create()
26+
27+
result = client.cancel_refund('someRefundId')
28+
29+
def request_refund_notification_to_be_resent(self) -> None:
30+
client = ClientProvider.create()
31+
32+
result = client.request_refund_notification('someRefundId')
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from examples.client_provider import ClientProvider
2+
3+
4+
class SettlementRequests:
5+
def get_settlement(self) -> None:
6+
client = ClientProvider.create()
7+
8+
settlement = client.get_settlement('someSettlementId')
9+
10+
settlements = client.get_settlements('USD', '2023-08-14', '2023-08-22')
11+
12+
def fetch_reconciliation_report(self) -> None:
13+
client = ClientProvider.create()
14+
15+
client.get_settlement_reconciliation_report('settlementId', 'settlementToken')

examples/Payout/payout_requests.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from bitpay.models.payout.payout import Payout
2+
from examples.client_provider import ClientProvider
3+
4+
5+
class PayoutRequests:
6+
def createPayout(self) -> None:
7+
client = ClientProvider.create()
8+
9+
payout = Payout()
10+
payout.notification_email = '[email protected]'
11+
payout.notification_url = 'https://my-url.com'
12+
13+
result = client.submit_payout(payout)
14+
15+
payouts = client.create_payout_group([payout])
16+
17+
def get_payout(self) -> None:
18+
client = ClientProvider.create()
19+
20+
payout = client.get_payout('myPayoutId')
21+
22+
payouts = client.get_payouts('2023-08-14', '2023-08-22')
23+
24+
def cancel_payout(self) -> None:
25+
client = ClientProvider.create()
26+
27+
client.cancel_payout('payoutId')
28+
29+
# payout_group = payout.group_id
30+
client.cancel_payout_group('payoutGroupId')
31+
32+
def request_payout_webhook_to_be_resent(self) -> None:
33+
client = ClientProvider.create()
34+
35+
client.request_payout_notification('somePayoutId')

examples/Payout/recipient_requests.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from bitpay.models.payout.payout_recipient import PayoutRecipient
2+
from bitpay.models.payout.payout_recipients import PayoutRecipients
3+
from examples.client_provider import ClientProvider
4+
5+
6+
class RecipientRequests:
7+
def invite_recipients(self) -> None:
8+
client = ClientProvider.create()
9+
10+
recipient = PayoutRecipient()
11+
recipient.email = '[email protected]'
12+
13+
result = client.submit_payout_recipients(
14+
PayoutRecipients(**{"recipients": [recipient]})
15+
)
16+
17+
def get_recipient(self) -> None:
18+
client = ClientProvider.create()
19+
20+
result = client.get_payout_recipient('recipientId')
21+
22+
def update_recipient(self) -> None:
23+
client = ClientProvider.create()
24+
25+
recipient = PayoutRecipient()
26+
recipient.email = '[email protected]'
27+
28+
result = client.update_payout_recipient('recipientId', recipient)
29+
30+
def remove_recipient(self) -> None:
31+
client = ClientProvider.create()
32+
33+
result = client.delete_payout_recipient('recipientId')

examples/Pos/bill_requests.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from bitpay.client import Client
2+
from bitpay.environment import Environment
3+
from bitpay.models.bill.bill import Bill
4+
from bitpay.models.facade import Facade
5+
6+
7+
class BillRequests:
8+
def create_bill(self) -> None:
9+
client = Client.create_pos_client('somePosToken', Environment.TEST.value)
10+
11+
bill = Bill()
12+
bill.name = 'someName'
13+
bill.email = '[email protected]'
14+
bill.address1 = 'SomeAddress'
15+
bill.city = 'MyCity'
16+
# ...
17+
18+
result = client.create_bill(bill, Facade.POS, False)
19+
20+
def get_bill(self) -> None:
21+
client = Client.create_pos_client('somePosToken', Environment.TEST.value)
22+
23+
result = client.get_bill('someBillId', Facade.POS, False)
24+
25+
def deliver_bill_via_email(self) -> None:
26+
client = Client.create_pos_client('somePosToken', Environment.TEST.value)
27+
28+
result = client.deliver_bill('someBillId', 'token')

examples/Pos/invoice_requests.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from bitpay.client import Client
2+
from bitpay.environment import Environment
3+
from bitpay.models.facade import Facade
4+
from bitpay.models.invoice.buyer import Buyer
5+
from bitpay.models.invoice.invoice import Invoice
6+
7+
8+
class InvoiceRequests:
9+
def create_invoice(self) -> None:
10+
invoice = Invoice()
11+
invoice.full_notifications = True
12+
invoice.extended_notifications = True
13+
invoice.notification_url = "https://test/lJnJg9WW7MtG9GZlPVdj"
14+
invoice.redirect_url = "https://test/lJnJg9WW7MtG9GZlPVdj"
15+
invoice.notification_email = "[email protected]"
16+
17+
buyer = Buyer()
18+
buyer.name = "Test"
19+
buyer.email = "[email protected]"
20+
buyer.address1 = "168 General Grove"
21+
buyer.country = "AD"
22+
buyer.locality = "Port Horizon"
23+
buyer.notify = True
24+
buyer.phone = "+990123456789"
25+
buyer.postal_code = "KY7 1TH"
26+
buyer.region = "New Port"
27+
28+
invoice.buyer = buyer
29+
30+
client = Client.create_pos_client('somePosToken', Environment.TEST.value)
31+
32+
result = client.create_invoice(invoice, Facade.POS, False)
33+
34+
def get_invoice(self) -> None:
35+
client = Client.create_pos_client('somePosToken', Environment.TEST.value)
36+
37+
invoice_by_id = client.get_invoice('someInvoiceId', Facade.POS, False)

examples/Public/rate_requests.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from examples.client_provider import ClientProvider
2+
3+
4+
class RateRequests:
5+
def get_rate(self) -> None:
6+
client = ClientProvider.create()
7+
8+
rates = client.get_rates()
9+
10+
currency_rates = client.get_currency_rates('BTC')
11+
12+
currency_pair_rate = client.get_currency_pair_rate('BTC', 'USD')

examples/Public/wallet_requests.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from examples.client_provider import ClientProvider
2+
3+
4+
class WalletRequests:
5+
def get_supported_wallets(self) -> None:
6+
client = ClientProvider.create()
7+
8+
rates = client.get_supported_wallets()

examples/client_provider.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from bitpay.client import Client
2+
3+
4+
class ClientProvider:
5+
6+
@staticmethod
7+
def create() -> Client:
8+
return Client.create_client_by_config_file_path("some/path")

0 commit comments

Comments
 (0)