A Python client for interacting with the GoCardless Pro API.
Tested against Python 2.7, 3.3, and 3.4.
- ["Getting started" guide](https://developer.gocardless.com/getting-started/api/introduction/?lang=python) with copy and paste Python code samples
- [API Reference](https://developer.gocardless.com/api-reference/2015-07-06)
Install from PyPI:
$ pip install gocardless_pro
Create a Client
instance, providing your access token and the environment
you want to use:
import gocardless_pro
token = os.environ['ACCESS_TOKEN']
client = gocardless_pro.Client(access_token=token, environment='live')
Access API endpoints using the corresponding methods on the client object:
# Create a new customer
customer = client.customers.create(params={'email': '[email protected]'})
# Fetch a payment by its id
payment = client.payments.get("PA123")
# Loop through a page of payments, printing each payment's amount
for payment in client.payments.list().records:
decimal_amount = decimal.Decimal(payment.amount) / 100
print('Payment for £{0}'.format(decimal_amount))
# Create a mandate PDF in a specific language
client.mandate_pdfs.create(
params={'links': {'mandate': 'MD00001234XYZ'}},
headers={'Accept-Language': 'fr'}
)
For full documentation, see our API docs.
# Perform a bank details lookup
client.bank_details_lookups.create(params={...})
# Create a creditor
client.creditors.create(params={...})
# List creditors
client.creditors.list(params={...})
# Iterate through all creditors
client.creditors.all(params={...})
# Get a single creditor
client.creditors.get('CR123', params={...})
# Update a creditor
client.creditors.update('CR123', params={...})
# Create a creditor bank account
client.creditor_bank_accounts.create(params={...})
# List creditor bank accounts
client.creditor_bank_accounts.list(params={...})
# Iterate through all creditor_bank_accounts
client.creditor_bank_accounts.all(params={...})
# Get a single creditor bank account
client.creditor_bank_accounts.get('BA123', params={...})
# Disable a creditor bank account
client.creditor_bank_accounts.disable('BA123', params={...})
# Create a customer
client.customers.create(params={...})
# List customers
client.customers.list(params={...})
# Iterate through all customers
client.customers.all(params={...})
# Get a single customer
client.customers.get('CU123', params={...})
# Update a customer
client.customers.update('CU123', params={...})
# Create a customer bank account
client.customer_bank_accounts.create(params={...})
# List customer bank accounts
client.customer_bank_accounts.list(params={...})
# Iterate through all customer_bank_accounts
client.customer_bank_accounts.all(params={...})
# Get a single customer bank account
client.customer_bank_accounts.get('BA123', params={...})
# Update a customer bank account
client.customer_bank_accounts.update('BA123', params={...})
# Disable a customer bank account
client.customer_bank_accounts.disable('BA123', params={...})
# List events
client.events.list(params={...})
# Iterate through all events
client.events.all(params={...})
# Get a single event
client.events.get('EV123', params={...})
# Create a mandate
client.mandates.create(params={...})
# List mandates
client.mandates.list(params={...})
# Iterate through all mandates
client.mandates.all(params={...})
# Get a single mandate
client.mandates.get('MD123', params={...})
# Update a mandate
client.mandates.update('MD123', params={...})
# Cancel a mandate
client.mandates.cancel('MD123', params={...})
# Reinstate a mandate
client.mandates.reinstate('MD123', params={...})
# Create a mandate PDF
client.mandate_pdfs.create(params={...})
# Create a payment
client.payments.create(params={...})
# List payments
client.payments.list(params={...})
# Iterate through all payments
client.payments.all(params={...})
# Get a single payment
client.payments.get('PM123', params={...})
# Update a payment
client.payments.update('PM123', params={...})
# Cancel a payment
client.payments.cancel('PM123', params={...})
# Retry a payment
client.payments.retry('PM123', params={...})
# List payouts
client.payouts.list(params={...})
# Iterate through all payouts
client.payouts.all(params={...})
# Get a single payout
client.payouts.get('PO123', params={...})
# Create a redirect flow
client.redirect_flows.create(params={...})
# Get a single redirect flow
client.redirect_flows.get('RE123456', params={...})
# Complete a redirect flow
client.redirect_flows.complete('RE123456', params={...})
# Create a refund
client.refunds.create(params={...})
# List refunds
client.refunds.list(params={...})
# Iterate through all refunds
client.refunds.all(params={...})
# Get a single refund
client.refunds.get('RF123', params={...})
# Update a refund
client.refunds.update('RF123', params={...})
# Create a subscription
client.subscriptions.create(params={...})
# List subscriptions
client.subscriptions.list(params={...})
# Iterate through all subscriptions
client.subscriptions.all(params={...})
# Get a single subscription
client.subscriptions.get('SB123', params={...})
# Update a subscription
client.subscriptions.update('SB123', params={...})
# Cancel a subscription
client.subscriptions.cancel('SB123', params={...})
First, install the development dependencies:
$ pip install -r requirements-dev.txt
To run the test suite against the current Python version, run nosetests
.
To run the test suite against multiple Python versions, run tox
.
If you don't have all versions of Python installed, you can run the tests in
a Docker container by running make
.