pip install cuenca
The preferred way to configure the credentials for the client is to set the
CUENCA_API_KEY
and CUENCA_API_SECRET
environment variables. The client
library will automatically configure based on the values of those variables.
To configure manually:
import cuenca
cuenca.configure(api_key='PKxxxx', api_secret='yyyyyy')
JWT tokens can also be used if your credentials have enough permissions. To
do so, you may include the parameter use_jwt
as part of your configure
import cuenca
cuenca.configure(use_jwt=True)
A new token will be created at this moment and automatically renewed before sending any request if there is less than 5 minutes to be expired according to its payload data.
import cuenca
cuenca.configure(sandbox=True) # if using sandbox
local_transfer_id = '078efdc20bab456285437309c4b75673'
transfer = cuenca.Transfer.create(
recipient_name='Benito Juárez',
account_number='646180157042875763', # CLABE or card number
amount=12345, # Mx$123.45
descriptor='sending money', # As it'll appear for the customer
idempotency_key=local_transfer_id
)
# To get updated status
transfer.refresh()
import cuenca
transfer = cuenca.Transfer.retrieve('tr_123')
Results are always returned in descending order of created_at
The methods that can be used:
one()
- returns a single result. RaisesNoResultFound
if there are no results andMultipleResultsFound
if there are more than onefirst()
- returns the first result orNone
if there aren't anyall()
- returns a generator of all matching results. Pagination is handled automatically as you iterate over the responsecount()
- returns an integer with the count of the matching results
import cuenca
from cuenca.types import Status
# find the unique transfer using the idempotency key
local_transfer_id = '078efdc20bab456285437309c4b75673'
transfer = cuenca.Transfer.one(idempotency_key=local_transfer_id)
# returns a generator of all succeeded transfers to the specific account
transfers = cuenca.Transfer.all(
account_number='646180157000000004',
status=Status.succeeded
)
# the total number of succeeded transfers
count = cuenca.Transfer.count(status=Status.succeeded)
import cuenca
# balance is the amount in cents
balance = cuenca.get_balance()
import cuenca
# Create new ApiKey
new = cuenca.ApiKey.create()
# Have to use the new key to deactivate the old key
old_id = cuenca.session.auth[0]
cuenca.session.configure(new.id, new.secret)
cuenca.ApiKey.deactivate(old_id, 60) # revoke prior API key in an hour
Create a new password
cuenca.UserCredential.create(password='1234567890')
To update your password
cuenca.UserCredential.update(password='1234567890')
To reset password
cuenca.UserCredential.update(password=None)
Login in and out
cuenca.UserLogin.create(password='1234567890')
... # authenticated operation
cuenca.UserLogin.logout()
Create login token for biometrics
# Must be logged in
cuenca.UserLogin.create(password='1234567890')
token = cuenca.LoginToken.create()
cuenca.UserLogin.logout()
# Then you can use the token which lasts for 7 days
cuenca.configure(login_token=token)
... # authenticated operation