The Square Connect Python SDK is retired (EOL) as of 2019-08-15 and will no longer receive bug fixes or product updates. To continue receiving API and SDK improvements, please follow the instructions below to migrate to the new Square Python SDK.
The old Connect SDK documentation is available under the
/docs folder.
Follow the instructions below to migrate your apps from the deprecated
squareconnect library to the new square library.
Install the latest Square Python SDK using pip:
pipinstallsquareup- Change all instances of
import 'squareconnect'toimport 'square'. - Replace models with plain Python dictionary equivalents.
- Update client instantiation to follow the method outlined below.
- Update code for accessing response data to follow the method outlined below.
- Check
response.is_successorresponse.is_errorrather than rescuing exceptions for flow control.
To simplify your code, we also recommend that you use method chaining to access APIs instead of explicitly instantiating multiple clients.
fromsquare.clientimportClientsquare=Client(access_token='YOUR ACCESS TOKEN')
response=square.API.ENDPOINT(body=BODY)ifresponse.is_success():
print({response.body})
elifresponse.is_error():
print({response.errors})As a specific example, consider the following code for creating a new customer from this dictionary:
new_customer= {
'given_name': 'Ava',
'address': {
'address_line_1': '555 Electric Ave',
'locality': 'Los Angeles',
'country': 'US'
}
}With the deprecated squareconnect library, this is how you instantiate a
client for the Customers API, format the request, and call the endpoint:
fromsquareconnectimportApiClientfromsquareconnect.restimportApiExceptionfromsquareconnect.apis.customers_apiimportCustomersApifromsquareconnect.models.create_customer_requestimportCreateCustomerRequest# Instantiate and initialize the clientapi_client=ApiClient()
api_client.configuration.access_token='YOUR ACCESS TOKEN'# Get an instance of the Square API you want callapi_instance=CustomersApi(api_client)
# Build the requestcreate_customer_request=CreateCustomerRequest(
given_name=new_customer['given_name'],
address=new_customer['address'],
)
# Call create_customer method to create a new customer and handle the responsetry:
api_response=api_instance.create_customer(create_customer_request)
print(f"Success: {api_response.customer}")
exceptApiExceptionaserr:
print(f"Exception when calling CustomersApi->create_customer: {err}")Now consider equivalent code using the new square library:
fromsquare.clientimportClient# Instantiate the clientclient=Client(access_token='YOUR ACCESS TOKEN')
# Call create_customer method to create a new customerresult=client.customers.create_customer(new_customer)
# Handle the resultifresult.is_success():
# Display the response as textprint(f"Success: {result.text}")
# Call the error method to see if the call failedelifresult.is_error():
print(f"Errors: {result.errors}")That's it! What was once a multi-block process can be handled in 2 lines of code
and an if/elif block. Migrating to the square library reduces boilerplate
and lets you can focus on the parts of your code that really matter.
Please join us in our Square developer community if you have any questions!