{ "info": { "author": "Coinbase, Inc.", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "[![CircleCI](https://circleci.com/gh/coinbase/coinbase-commerce-python/tree/master.svg?style=svg)](https://circleci.com/gh/coinbase/coinbase-commerce-python/tree/master)\n\n# coinbase-commerce-python\nCoinbase Commerce Python\n\n# Table of contents\n\n\n * [Python Versions](#python-version)\n * [Third Party Libraries and Dependencies](#third-party-libraries-and-dependencies)\n * [Documentation](#documentation)\n * [Installation](#installation)\n * [Usage](#usage)\n * [Checkouts](#checkouts)\n * [Charges](#charges)\n * [Events](#events)\n * [Validating webhook signatures](#validating-webhook-signatures)\n * [Testing and Contributing](#testing-and-contributing)\n\n\n## Python Version\nPython 2.7+ and 3.4+ are supported and tested.\n\n## Third Party Libraries and Dependencies\n\nThe following libraries will be installed when you install the client library:\n* [requests](https://github.com/requests/requests)\n\n## Documentation\n\nFor more details visit [Coinbase API docs](https://commerce.coinbase.com/docs/api/).\n\nTo start using library, you need to register on [Commerce SignUp](https://commerce.coinbase.com/signup).\nAnd get your ``API_KEY`` from user settings.\n\nNext create a ``Client`` object for interacting with the API:\n```python\nfrom coinbase_commerce.client import Client\n\nAPI_KEY = \"API KEY\"\nclient = Client(api_key=API_KEY)\n```\n\n``Client`` contains links to an every Python Class representations of the API resources\n``Checkout, Charge, Event``\n\nYou can call ``list, list_paging_iter, create, retrieve, modify`` methods from an API resource classes\n\n```python\nclient.charge.create\nclient.checkout.list_paging_iter \nclient.event.list\nclient.charge.retrieve\nclient.checkout.modify\n```\nas well as ``save, delete, refresh`` methods from API resource class instances.\n```python\ncheckout = client.checkout.retrieve()\ncheckout.refresh()\ncheckout.save()\ncheckout.delete()\n```\n\nEach API method returns an ``APIObject`` (a subclass of ``dict``) representing the JSON response from the API, all of the models are dumpable with JSON.\\\nAlso when the response data is parsed into Python objects, the appropriate ``APIObject`` subclasses will be used automatically.\nAll subclasses of ``APIResource`` class support ``refresh`` method. This will update their attributes and all nested data by making a fresh ``GET`` request to the relevant API endpoint.\n\nClient support Common API Errors and Warnings handling.\nAll errors occuring during interaction with the API will be raised as exceptions.\n\n\n| Error | Status Code |\n|--------------------------|-------------|\n| APIError | * | \n| InvalidRequestError | 400 | \n| ParamRequiredError | 400 | \n| ValidationError | 400 | \n| AuthenticationError | 401 | \n| ResourceNotFoundError | 404 |\n| RateLimitExceededError | 429 |\n| InternalServerError | 500 |\n| ServiceUnavailableError | 503 |\n\n## Installation\n\nInstall with ``pip``:\n\n pip install --upgrade coinbase-commerce\n\nor with ``easy_install``:\n\n easy_install --upgrade coinbase-commerce\n\n\n## Usage\n```python\nfrom coinbase_commerce.client import Client\n\nclient = Client(api_key=API_KEY)\n```\n## Checkouts \n[Checkouts API docs](https://commerce.coinbase.com/docs/api/#checkouts)\n### Retrieve\n```python\ncheckout = client.checkout.retrieve()\n```\n### Create\n```python\ncheckout_info = {\n \"name\": 'The Sovereign Individual',\n \"description\": 'Mastering the Transition to the Information Age',\n \"pricing_type\": 'fixed_price',\n \"local_price\": {\n \"amount\": \"100.00\",\n \"currency\": \"USD\"\n },\n \"requested_info\": [\"name\", \"email\"]\n}\ncheckout = client.checkout.create(**checkout_info)\n\n# or\n\ncheckout = client.checkout.create(name='The Sovereign Individual',\n description='Mastering the Transition to the Information Age',\n pricing_type='fixed_price',\n local_price={\n \"amount\": \"100.00\",\n \"currency\": \"USD\"\n },\n requested_info=[\"name\", \"email\"]) \n```\n### Update\n```python\ncheckout = client.checkout.retrieve()\ncheckout.name = 'new name'\ncheckout.save()\n\n# or\n\ncheckout = client.checkout.modify('',\n name='new name')\n```\n### Delete\n```python\ncheckout.delete()\n```\n### List\n```python\ncheckouts = client.checkout.list()\n```\n### Paging list iterations\n```python\nfor checkout in client.checkout.list_paging_iter():\n print(\"{!r}\".format(checkout))\n\n```\n## Charges\n[Charges API docs](https://commerce.coinbase.com/docs/api/#charges)\n### Retrieve\n```python\ncharge = client.charge.retrieve()\n```\n### Create\n```python\ncharge_info = {\n \"name\": \"The Sovereign Individual\",\n \"description\": \"Mastering the Transition to the Information Age\",\n \"local_price\": {\n \"amount\": \"100.00\",\n \"currency\": \"USD\"\n },\n \"pricing_type\": \"fixed_price\"\n\n}\ncharge = client.charge.create(**charge_info)\n\n# or\n\ncharge = client.charge.create(name='The Sovereign Individual',\n description='Mastering the Transition to the Information Age',\n pricing_type='fixed_price',\n local_price={\n \"amount\": \"100.00\",\n \"currency\": \"USD\"\n })\n```\n### List\n```python\ncheckouts = client.charge.list()\n```\n### Paging list iterations\n```python\nfor charge in client.charge.list_paging_iter():\n print(\"{!r}\".format(charge))\n```\n## Events\n[Events API Docs](https://commerce.coinbase.com/docs/api/#events)\n### Retrieve\n```python\nevent = client.event.retrieve()\n```\n### List\n```python\nevents = client.event.list()\n```\n### Paging list iterations\n```python\nfor event in client.event.list_paging_iter():\n print(\"{!r}\".format(event))\n```\n\n## Validating webhook signatures\nYou could verify webhook signatures using our library.\nTo perform the verification you'll need to provide the event data, a webhook signature from request header, and the endpoint\u2019s secret.\nIn case of invalid request signature or request payload, you will receive appropriate error message.\n```python\nWEBHOOK_SECRET = 'your_webhook_secret'\n\n# using Flask\n@app.route('/webhooks', methods=['POST'])\ndef webhooks():\n # event payload\n request_data = request.data.decode('utf-8')\n # webhook signature\n request_sig = request.headers.get('X-CC-Webhook-Signature', None)\n\n try:\n # signature verification and event object construction\n event = Webhook.construct_event(request_data, request_sig, WEBHOOK_SECRET)\n except (WebhookInvalidPayload, SignatureVerificationError) as e:\n return str(e), 400\n\n print(\"Received event: id={id}, type={type}\".format(id=event.id, type=event.type))\n return 'success', 200\n```\n\n### Testing and Contributing\nAny and all contributions are welcome! The process is simple: fork this repo, make your changes, run the test suite, and submit a pull request. Tests are run via nosetest. To run the tests, clone the repository and then:\n\n#### Install the requirements\n```\npip install -r requirements.txt\n```\n\n#### Run the tests for your current version of Python\nUse tox to run the test suite against multiple versions of Python. You can install tox with pip or easy_install:\n```\npip install tox\neasy_install tox\n```\nTox requires the appropriate Python interpreters to run the tests in different environments. We recommend using pyenv for this. Once you've installed the appropriate interpreters, running the tests in every environment is simple:\n```\ntox\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/coinbase/coinbase-commerce-python", "keywords": "api,coinbase commerce,client", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "coinbase-commerce", "package_url": "https://pypi.org/project/coinbase-commerce/", "platform": "", "project_url": "https://pypi.org/project/coinbase-commerce/", "project_urls": { "Homepage": "https://github.com/coinbase/coinbase-commerce-python" }, "release_url": "https://pypi.org/project/coinbase-commerce/1.0.1/", "requires_dist": [ "requests (>=2.14.0)", "six (>=1.9)" ], "requires_python": "", "summary": "Coinbase Commerce API client library", "version": "1.0.1" }, "last_serial": 4172831, "releases": { "0.9.4": [ { "comment_text": "", "digests": { "md5": "d34cbf898fd049c2d7772a6ff31849c5", "sha256": "d13a2a978754707dd7d03d27e3d0f0fe9d515566c4b15ab1cb69004eec7119dd" }, "downloads": -1, "filename": "coinbase_commerce-0.9.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d34cbf898fd049c2d7772a6ff31849c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 19305, "upload_time": "2018-07-24T12:51:13", "url": "https://files.pythonhosted.org/packages/9f/1b/19f69509e601b78582b377d4dacfa9d5caa56a2e38ad57bfb9d220e282db/coinbase_commerce-0.9.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3565ec2de375386080a376c72a4b6199", "sha256": "43d1e499a0ce0d5dbe836a0db0b27323493f3ccdddc21e442aeb7068832502ba" }, "downloads": -1, "filename": "coinbase_commerce-0.9.4.tar.gz", "has_sig": false, "md5_digest": "3565ec2de375386080a376c72a4b6199", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 22428, "upload_time": "2018-07-24T12:51:15", "url": "https://files.pythonhosted.org/packages/b6/6e/11d3a25e373ea8c1342e3ed5758b434c82e7fade8aad8804f4d19a301864/coinbase_commerce-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "342e85729f85576bf4dded79fba4c9c0", "sha256": "30cd785e90d57e347ba8b21aaf47421de614f5da6ef7b9f21d2b427f267f793d" }, "downloads": -1, "filename": "coinbase_commerce-0.9.5-py3-none-any.whl", "has_sig": false, "md5_digest": "342e85729f85576bf4dded79fba4c9c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 19447, "upload_time": "2018-07-25T15:15:54", "url": "https://files.pythonhosted.org/packages/38/d5/cf92f7c7131c6129da5b7eb5b5cb0b9fa70a73ab19a1dc9faa623779da05/coinbase_commerce-0.9.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0922c187f87749407c459acdc29b8b31", "sha256": "37c7888f05b8e160170257fdcc0e7919d9a03868f350319c3f4c1d5945f2dbb1" }, "downloads": -1, "filename": "coinbase_commerce-0.9.5.tar.gz", "has_sig": false, "md5_digest": "0922c187f87749407c459acdc29b8b31", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 22473, "upload_time": "2018-07-25T15:15:56", "url": "https://files.pythonhosted.org/packages/77/36/ffd3b8b8f388cb2c860165b2521e3625f5cdc107530e8dac4a77165e9197/coinbase_commerce-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "940482b267e2e2db55c7d3ca7c221940", "sha256": "bab8ccaa2984cb7a08b8c88683d443133e860c716400c498345dc587cf97d137" }, "downloads": -1, "filename": "coinbase_commerce-0.9.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "940482b267e2e2db55c7d3ca7c221940", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20162, "upload_time": "2018-08-01T17:01:49", "url": "https://files.pythonhosted.org/packages/0c/a0/48786f57d26200f537dadefda6174793891af1bd2d0ff6120fb5ed2bad1e/coinbase_commerce-0.9.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15c93d0a193d49f16bbb37d2afb62ec3", "sha256": "ef31d944fc3ac60f267ad00d9d532e28170d5843b99e70743bc3467f9b35165b" }, "downloads": -1, "filename": "coinbase_commerce-0.9.6.tar.gz", "has_sig": false, "md5_digest": "15c93d0a193d49f16bbb37d2afb62ec3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34830, "upload_time": "2018-08-01T17:01:51", "url": "https://files.pythonhosted.org/packages/f7/1a/9e0b60a3bad8fefb370340b523b2181c5823fe6b598f0630bec00f9edd40/coinbase_commerce-0.9.6.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "458b75e40a75ce5e9c72fe64c33bfd4f", "sha256": "a910ed610598092b63f28aee9e95fa9f74c3c2923af81af7e5e9cfdebd1c6727" }, "downloads": -1, "filename": "coinbase_commerce-0.9.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "458b75e40a75ce5e9c72fe64c33bfd4f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20885, "upload_time": "2018-08-09T01:11:57", "url": "https://files.pythonhosted.org/packages/34/59/bdeb6f5aa5aeb9b3f8608c1556b4660c2f4db87eca68d3fc09184e45846e/coinbase_commerce-0.9.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0691e28392e1e5a2b754fccb06c58646", "sha256": "f1e0455f52528fef2963554ce07d53351848abb9efc56252591a1dfd37fb64a1" }, "downloads": -1, "filename": "coinbase_commerce-0.9.9.tar.gz", "has_sig": false, "md5_digest": "0691e28392e1e5a2b754fccb06c58646", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37094, "upload_time": "2018-08-09T01:11:58", "url": "https://files.pythonhosted.org/packages/3d/8f/5dd429c729d78cfcf86ed13e8f38139bda503aced99b7ed465aa88d2ea55/coinbase_commerce-0.9.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7e7f6cbc0f479ecca9088396c0b8246c", "sha256": "fa374b4af0bea1c8112ef90980f60053844e6a52408da3e3922e2185e9770be8" }, "downloads": -1, "filename": "coinbase_commerce-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e7f6cbc0f479ecca9088396c0b8246c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20865, "upload_time": "2018-08-09T03:32:45", "url": "https://files.pythonhosted.org/packages/02/f0/2fd5a6cfe7c913441d22d28993f5af936c113a99294eca7fd227de0c7a0d/coinbase_commerce-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8da13f42e4a2bbbc75275912ed4cae3d", "sha256": "f6df5da3146dafd23a4ad2d9f1f1a66b62f2e7970d32a147ed805fd870597840" }, "downloads": -1, "filename": "coinbase_commerce-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8da13f42e4a2bbbc75275912ed4cae3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37160, "upload_time": "2018-08-09T03:32:46", "url": "https://files.pythonhosted.org/packages/ab/ab/8a45177624f9c040e789078d418fcd48339103713bbbf36c323196f1a164/coinbase_commerce-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a3be404441a09dbf989ab23990d188f7", "sha256": "2eee6981767873f2ab803a2d40ad497b08a2231bcf68de79ccec0314728370fe" }, "downloads": -1, "filename": "coinbase_commerce-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a3be404441a09dbf989ab23990d188f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20929, "upload_time": "2018-08-15T11:41:55", "url": "https://files.pythonhosted.org/packages/f9/3d/c5d0c2ed3d226c0649d603b7d992c771957081d13e6d7aab6a98a845d712/coinbase_commerce-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cae49ac04d74986cf7b4139d501d981d", "sha256": "5f6807655e9297210c1178dca62d1c1a997505368311c55c8ebe4f466344d966" }, "downloads": -1, "filename": "coinbase_commerce-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cae49ac04d74986cf7b4139d501d981d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37213, "upload_time": "2018-08-15T11:41:57", "url": "https://files.pythonhosted.org/packages/ac/52/c99505a81df698a8c7dd992038198af75f726c81f2f9a09f4cc141099039/coinbase_commerce-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a3be404441a09dbf989ab23990d188f7", "sha256": "2eee6981767873f2ab803a2d40ad497b08a2231bcf68de79ccec0314728370fe" }, "downloads": -1, "filename": "coinbase_commerce-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a3be404441a09dbf989ab23990d188f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20929, "upload_time": "2018-08-15T11:41:55", "url": "https://files.pythonhosted.org/packages/f9/3d/c5d0c2ed3d226c0649d603b7d992c771957081d13e6d7aab6a98a845d712/coinbase_commerce-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cae49ac04d74986cf7b4139d501d981d", "sha256": "5f6807655e9297210c1178dca62d1c1a997505368311c55c8ebe4f466344d966" }, "downloads": -1, "filename": "coinbase_commerce-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cae49ac04d74986cf7b4139d501d981d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37213, "upload_time": "2018-08-15T11:41:57", "url": "https://files.pythonhosted.org/packages/ac/52/c99505a81df698a8c7dd992038198af75f726c81f2f9a09f4cc141099039/coinbase_commerce-1.0.1.tar.gz" } ] }