Python SDK for Gr4vy
Project description
Gr4vy SDK for Python
Gr4vy provides any of your payment integrations through one unified API. For more details, visit gr4vy.com.
Installation
To add Gr4vy to your project simply install with pip:
pip install gr4vy
Add import:
import gr4vy
Getting Started
To make your first API call, you will need to request a Gr4vy instance to be set up. Please contact our sales team for a demo.
Once you have been set up with a Gr4vy account you will need to head over to the Integrations panel and generate a private key. We recommend storing this key in a secure location but in this code sample, we simply read the file from disk. For multi-merchant environments, an optional merchant ID can be provided as well.
from gr4vy import Gr4vyClient
client = Gr4vyClient("gr4vy_instance","location_of_key_file", "sandbox_or_production", "my-merchant-id)
client.ListBuyers()
Gr4vy Embed
To create a token for Gr4vy Embed, call the client.GetEmbedToken(embed)
function with the amount, currency, and optional buyer information for Gr4vy
Embed.
embed = {
"amount": 1299,
"currency": "USD",
"buyerExternalIdentifier": "user-12345",
}
token = client.generate_embed_token(embed)
You can now pass this token to your frontend where it can be used to authenticate Gr4vy Embed.
The buyer_id
and/or buyer_external_identifier
fields can be used to allow
the token to pull in previously stored payment methods for a user. A buyer
needs to be created before it can be used in this way.
from gr4vy import Gr4vyClient
client = Gr4vyClient("gr4vy_instance","private_key.pem", "production")
buyer_request = {"display_name": "Jane Smith"}
new_buyer = client.create_new_buyer(**buyer_request).get('id')
embed_data = {
"amount": 1299,
"currency": "USD",
"buyerId": new_buyer,
}
embed_token = client.generate_embed_token(embed_data=embed_data)
print("Embed token: {}".format(embed_token))
Checkout sessions can also be passed within an Embed token:
from gr4vy import Gr4vyClient
client = Gr4vyClient("gr4vy_instance","private_key.pem", "production")
checkout_session_id = client.create_new_checkout_session().get("id")
embed_data = {
"amount": 1299,
"currency": "USD",
}
embed_token = client.generate_embed_token(
embed_data=embed_data, checkout_session_id=checkout_session_id
)
print("Embed token: {}".format(embed_token))
Initialization
The client can be initialized with the Gr4vy ID (gr4vyId
), the location of the private key, and the environment attempting to access.
client = Gr4vyClient("gr4vyId","private_key.pem", "sandbox")
Alternatively, instead of the gr4vyId
it can be initialized with the baseUrl
of the server to use directly and the environment attempting to access.
client = Gr4vyClientWithBaseUrl("https://*gr4vyId*.gr4vy.app","private_key.pem", "sandbox")
Your API private key can be created in your admin panel on the Integrations tab.
Multi Merchant
Setting the Merchant ID for requests can be set on the client:
client = Gr4vyClient("gr4vyId","private_key.pem", "sandbox", merchant_account_id="merchant-id")
Making API calls
This library conveniently maps every API path to a separate function. For
example, GET /buyers?limit=100
would be:
client.list_buyers({"limit=100"})
To create, the API requires a request object for that resource. This is created by creating a dictionary object for the request.
For example, to create a buyer:
from gr4vy import BuyerRequest
buyer_request = {"display_name": "Jane Smith"}
new_buyer = client.add_buyer(**buyer_request)
To update a buyer:
buyer_id: "buyer_uuid_from_gr4vy"
buyer_request = {"display_name": "Jane Changed")
buyer_update = client.update_buyer(buyer_id, **buyer_request)
Response
Every resolved API call returns the requested resource, errors are printed to the console
print(client.list_buyers())
Logging & Debugging
The SDK makes it possible to log responses to the console.
print(client.list_buyers())
This will output the request parameters and response to the console as follows.
{"items":[{"id":"b8433347-a16f-46b5-958f-d681876546a6","type":"buyer","display_name":"Jane Smith","external_identifier":None,"created_at":"2021-04-22T06:51:16.910297+00:00","updated_at":"2021-04-22T07:18:49.816242+00:00"}],"limit":1,"next_cursor":"fAA0YjY5NmU2My00NzY5LTQ2OGMtOTEyNC0xODVjMDdjZTY5MzEAMjAyMS0wNC0yMlQwNjozNTowNy4yNTMxMDY","previous_cursor":None}
Publishing
This project is published on PyPi.
To roll a new release, update the version in pyproject.toml
and tag a new release. GitHub actions will handle the release to PyPI.
License
This library is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gr4vy-0.16.0.tar.gz
.
File metadata
- Download URL: gr4vy-0.16.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06bb4d5bf5cd02e584ebefb11ef1b3cee80c28afdf269c90c0702ab4b523aa2e |
|
MD5 | 77ca0cfb7f62f1f727370f8de77491a6 |
|
BLAKE2b-256 | c635eab33cd7b040b8fcf660270a0114ccfa76db7f72ac4de2dbd15a3eaf7cb1 |
File details
Details for the file gr4vy-0.16.0-py3-none-any.whl
.
File metadata
- Download URL: gr4vy-0.16.0-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2d69b8e6ed8aba6a81fde78c712240947e9d5dda0358ba751c0ed44f4f10998 |
|
MD5 | 572c018aaf03a7bc268cbacd775890b4 |
|
BLAKE2b-256 | 316ee814029c6aad5a6c569c0fffa731bbd032521cdbd4c1ed23c6b2fb75fbe6 |