Package: ginger-sdk
Ginger Python bindingsRequirementsPython 3.6 or laterrequests 2.20 or laterInstallationYou can install the Python bindings from PyPI:pipinstallginger-sdkYou can also use the Python bindings without using the Python Package Index by placing the ginger_sdk directory
somewhere in yourPYTHONPATH.Getting startedFirst create a new API client with your API key and API endpoint:fromginger_sdkimportGingerclient=Ginger.create_client('https://api.example.com','your-api-key')Initiating a paymentYou can start a new payment by creating a new order:order=client.create_order({'merchant_order_id':'my-custom-order-id-12345','currency':'EUR','amount':2500,# Amount in cents'description':'Purchase order 12345','return_url':'https://www.example.com','transactions':[{'payment_method':'credit-card',}]})Once you've created your order, a transaction is created and associated with it. You will need to redirect the user to
the transaction's payment URL, which you can retrieve as follows:payment_url=order['order_url']It is also recommended that you store the order's ID somewhere, so you can retrieve information about it later:order_id=order['id']There is a lot more data related to an order. Please refer to the API documentation provided by your PSP to learn more
about the various payment methods and options.Getting an orderIf you want to retrieve an existing order, use theget_ordermethod on the client:order=client.get_order(order_id)This will return an associative array with all order information.Updating an orderSome fields are not read-only and you are able to update them after order has been created. You can do this using
theupdate_ordermethod on the client:order=client.get_order(order_id)order['description']='New Order Description'updated_order=client.update_order(order)Initiating a refundYou can refund an existing order by using therefund_ordermethod on the client:refund_order=client.refund_order(order_id,{'amount':123,'description':'My refund'})Capturing an orderYou can initiate a capture of an order's transaction by using thecapture_order_transactionmethod:client.capture_order_transaction(order_id,transaction_id)Getting the iDEAL issuersWhen you create an order with the iDEAL payment method, you need to provide an issuer ID. The issuer ID is an identifier
of the bank the user has selected. You can retrieve all possible issuers by using theget_ideal_issuersmethod:issuers=client.get_ideal_issuers()You can then use this information to present a list to the user of possible banks to choose from.Custom requestsYou can send any request that the API accepts using thesendmethod. E.g. instead of using thecreate_ordermethod
you could also use the following:result=client.send('POST',# Request method'/orders/',# API pathorder_data# Data to send with the request; optional)The$resultvariable would then contain the decoded JSON returned by the API.Using a different CA bundleIf you need to use a different CA bundle than the one that comes with your system, you can install the Certifi package
from PyPI.pipinstallcertifiThe certificates supplied by Certifi will be automatically used.Custom HTTP clientThis library ships with its own minimal HTTP client for compatibility reasons. If you would like to use a different HTTP
client, you can do so by extending theginger_sdk.http_client.HttpClientabstract base class and then constructing
your own client:fromginger_sdk.api_clientimportApiClientmy_http_client=MyHttpClient()client=ApiClient(my_http_client)Make sure your HTTP client prefixes the endpoint URL and API version to all requests, and uses HTTP basic auth to
authenticate with the API using your API key.API documentationFor the complete API documentation please prefer to the resources provided by your PSP.