{"id":16760095,"url":"https://github.com/kristenpire/coinbase-commerce-go","last_synced_at":"2025-07-13T07:31:07.273Z","repository":{"id":45864915,"uuid":"148148677","full_name":"KristenPire/coinbase-commerce-go","owner":"KristenPire","description":"Coinbase Commerce Golang","archived":false,"fork":false,"pushed_at":"2023-04-26T10:22:31.000Z","size":62,"stargazers_count":2,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-14T04:09:42.246Z","etag":null,"topics":["coinbase","coinbase-api","coinbase-commerce","go","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KristenPire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-10T12:02:37.000Z","updated_at":"2024-02-03T00:57:37.000Z","dependencies_parsed_at":"2024-06-19T20:13:34.182Z","dependency_job_id":null,"html_url":"https://github.com/KristenPire/coinbase-commerce-go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristenPire%2Fcoinbase-commerce-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristenPire%2Fcoinbase-commerce-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristenPire%2Fcoinbase-commerce-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KristenPire%2Fcoinbase-commerce-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KristenPire","download_url":"https://codeload.github.com/KristenPire/coinbase-commerce-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225862812,"owners_count":17535998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coinbase","coinbase-api","coinbase-commerce","go","golang"],"created_at":"2024-10-13T04:09:40.607Z","updated_at":"2024-11-22T08:12:13.937Z","avatar_url":"https://github.com/KristenPire.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# coinbase-commerce-go\nCoinbase Commerce Golang\n\n# Table of contents\n\n\u003c!--ts--\u003e\n   * [Documentation](#documentation)\n   * [Installation](#installation)\n   * [Usage](#usage)\n      * [Checkouts](#checkouts)\n      * [Charges](#charges)\n      * [Events](#events)\n\u003c!--te--\u003e\n\n\n## Documentation\n\nFor more details visit [Coinbase API docs](https://commerce.coinbase.com/docs/api/) and [Coinbase Commerce Go GoDoc](https://godoc.org/github.com/KristenPire/coinbase-commerce-go)\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 ``APIClient`` object for interacting with the API:\n```golang\nimport \"github.com/KristenPire/coinbase-commerce-go\"\n\nclient := coinbase.Client(API_KEY)\n```\n\n``Client`` contains links to an every Golang Class representations of the API resources\n``Checkout, Charge, Event``\n\nYou can call ``Create, List, Get, Update, Delete`` methods from an API resource classes\n\n```golang\nclient.Charge.Create\nclient.Checkout.List \nclient.Event.Get\nclient.Checkout.Update\nclient.Checkout.Delete\n```\nas well as ``Save, Delete, Refresh`` methods from API resource class instances.\n```golang\ncheckout, err := client.Checkout.Get(\u003cid\u003e)\ncheckout.Refresh()\ncheckout.Save()\ncheckout.Delete()\n```\n\nEach API method returns an ``API ressource instances`` (``APICharge, APICheckout, APIEvent``) representing the response from the API, all of the models are dumpable with JSON.\\\nThe response data is parsed into Golang objects, the appropriate ``APIObject`` subclasses will be used automatically.\n\nClient support Common API Errors and Warnings handling.\nAll errors occuring during interaction with the API will be return.\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 ``go get``:\n\n    go get \"github.com/KristenPire/coinbase-commerce-go\"\n\n\n## Usage\n```golang\nimport \"github.com/KristenPire/coinbase-commerce-go\"\n\nclient := coinbase.Client(API_KEY)\n```\n## Checkouts \n[Checkouts API docs](https://commerce.coinbase.com/docs/api/#checkouts)\n### Get\n```golang\ncheckout, err := client.Checkout.Get(\u003ccheckout_id\u003e)\n```\n### Create\n```golang\n#by struct\ncheckout, err := client.Checkout.Create(coinbase.APICheckoutData{\n    Name:\"The Sovereign Individual\",\n    Description: \"Mastering the Transition to the Information Age\",\n    Pricing_type: \"fixed_price\",\n    Local_price: coinbase.Money{Amount : 100.00, Currency: \"USD\"},\n    Requested_info: []string{\"email\", \"name\"},\n   })\n\n#or directly by json\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, err := client.Checkout.Create(checkout_info)\n```\n### Update\n```golang\n#by object method\ncheckout, err := client.Checkout.Get(\u003ccheckout_id\u003e)\ncheckout.Data.Name := \"new name\"\ncheckout.Save()\n\n#by API method and json\ncheckout_info := `{\"name\": \"newName\"}`\n\ncheckout, err := client.Checkout.Update('\u003ccheckout_id\u003e', checkout_info)\n\n#or by API method and object\ncheckout := coinbase.APICheckoutData{}\ncheckout.Name := \"new name\"\n\ncheckout, err := client.Checkout.Update('\u003ccheckout_id\u003e', checkout)\n```\n\n### Delete\n```golang\n#by object method\ncheckout , err := client.Checkout.Get(\u003ccheckout_id\u003e)\ncheckout.Delete()\n\n#by API method\nclient.Checkout.Delete('\u003ccheckout_id\u003e')\n```\n### List\n```golang\ncheckouts, err := client.Checkout.List()\n```\n\n### Iterations\n```golang\ncheckouts, err := client.Checkout.List()\nfor err, checkout := range checkouts.Data{\n    checkout.Delete()\n}\n```\n## Charges\n[Charges API docs](https://commerce.coinbase.com/docs/api/#charges)\n### Retrieve\n```golang\ncharge ,err := client.Charge.Get(\u003ccharge_id\u003e)\n```\n### Create\n```golang\n#by struct\ncharge, err := client.Charge.Create(coinbase.APIChargeData{\n    Name:\"The Sovereign Individual\",\n    Description: \"Mastering the Transition to the Information Age\",\n    Pricing_type: \"fixed_price\",\n    Local_price: coinbase.Money{Amount : 100.00, Currency: \"USD\"},\n   })\n\n#or directly by json\ncharge_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}`\ncharge, err := client.Charge.Create(charge_info)\n```\n### List\n```golang\ncharges, err := client.Charge.List()\n```\n### Iterations\n```golang\ncharges, err := client.Charge.List()\nfor _, charge := range charges.Data{\n    jsonStr, _ := json.Marshal(charge)\n    fmt.Println(string(jsonStr))\n}\n```\n## Events\n[Events API Docs](https://commerce.coinbase.com/docs/api/#events)\n### Retrieve\n```golang\nevent ,err := client.Event.Get(\u003cevent_id\u003e)\n```\n### List\n```golang\nevents, err := client.Event.List()\n```\n### Iterations\n```golang\nevents, err := client.Event.List()\nfor _, event := range events.Data{\n    jsonStr, _ := json.Marshal(event)\n    fmt.Println(string(jsonStr))\n}\n```\n\n## Types\n### Checkout\n#### APICheckoutData\n```golang\ntype APICheckoutData struct {\n\tId             string   `json:\"id,omitempty\"`\n\tResource       string   `json:\"ressource,omitempty\"`\n\tName           string   `json:\"name,omitempty\"`\n\tDescription    string   `json:\"description,omitempty\"`\n\tLogo_url       string   `json:\"logo_url,omitempty\"`\n\tRequested_info []string `json:\"requested_info,omitempty\"`\n\tPricing_type   string   `json:\"pricing_type,omitempty\"`\n\tLocal_price    Money    `json:\"local_price,omitempty\"`\n}\n```\n#### APICheckout\n```golang\ntype APICheckout struct {\n\tfather *ACheckout\n\tData   APICheckoutData `json:\"data,omitempty\"`\n\tErrors []APIError      `json:\"errors,omitempty\"`\n}\n```\n#### APICheckouts\n```golang\ntype APICheckouts struct {\n\tPagination APIPagination `json:\"pagination,omitempty\"`\n\tCheckouts  []APICheckout `json:\"data,omitempty\"`\n\tErrors     []APIError    `json:\"errors,omitempty\"`\n}\n```\n### Charge\n#### APIChargeData\n```golang\ntype APIChargeData struct {\n\tId           string     `json:\"id,omitempty\"`\n\tRessource     string     `json:\"ressource,omitempty\"`\n\tCode         string     `json:\"code,omitempty\"`\n\tName         string     `json:\"name,omitempty\"`\n\tDescription  string     `json:\"description,omitempty\"`\n\tLogo_url     string     `json:\"logo_url,omitempty\"`\n\tHosted_url   string     `json:\"Hosted_url,omitempty\"`\n\tCreated_at   *time.Time `json:\"created_at,omitempty\"`\n\tUpdated_at   *time.Time `json:\"updated_at,omitempty\"`\n\tConfirmed_at *time.Time `json:\"confirmed_at,omitempty\"`\n\tCheckout     struct {\n\t\tId string `json:\"id,omitempty\"`\n\t} `json:\"checkout,omitempty\"`\n\tTimeline []struct {\n\t\tTime    *time.Time `json:\"id,omitempty\"`\n\t\tStatus  string     `json:\"status,omitempty\"`\n\t\tContext string     `json:\"context,omitempty\"`\n\t} `json:\"timeline,omitempty\"`\n\tMetadata     map[string]interface{} `json:\"metadata,omitempty\"`\n\tPricing_type string                 `json:\"pricing_type,omitempty\"`\n\tPricing      struct {\n\t\tLocal       Money `json:\"local,omitempty\"`\n\t\tBitcoin     Money `json:\"bitcoin,omitempty\"`\n\t\tBitcoincash Money `json:\"bitcoincash,omitempty\"`\n\t\tEthereum    Money `json:\"ethereum,omitempty\"`\n\t\tLitecoin    Money `json:\"litecoin,omitempty\"`\n\t} `json:\"pricing,omitempty\"`\n\tPayments []map[string]interface{} `json:\"payements,omitempty\"`\n\tAddresses struct {\n\t\tBitcoin     string `json:\"bitcoin,omitempty\"`\n\t\tBitcoincash string `json:\"bitcoincash,omitempty\"`\n\t\tEthereum    string `json:\"ethereum,omitempty\"`\n\t\tLitecoin    string `json:\"litecoin,omitempty\"`\n\t} `json:\"addresses,omitempty\"`\n\tLocal_price Money `json:\"local_price,omitempty\"`\n}\n```\n#### APICharge\n```golang\ntype APICharge struct {\n\tfather *ACharge\n\tData   APIChargeData `json:\"data,omitempty\"`\n\tErrors []APIError    `json:\"errors,omitempty\"`\n}\n```\n#### APICharges\n```golang\ntype APICharges struct {\n\tPagination APIPagination `json:\"pagination,omitempty\"`\n\tCharges    []APICharge   `json:\"data,omitempty\"`\n\tErrors     []APIError    `json:\"errors,omitempty\"`\n}\n```\n\n### Event\n#### APIEventData\n```golang\n\ntype APIEventData struct {\n\tId          string        `json:\"id,omitempty\"`\n\tResource    string        `json:\"ressource,omitempty\"`\n\tCreated_at  *time.Time    `json:\"created_at,omitempty\"`\n\tApi_version string        `json:\"api_version,omitempty\"`\n\tData        APIChargeData `json:\"data,omitempty\"`\n}\n```\n#### APIEvent\n```golang\ntype APIEvent struct {\n\tfather *AEvent\n\tData   APIEventData `json:\"data,omitempty\"`\n\tErrors []APIError   `json:\"errors,omitempty\"`\n}\n```\n#### APIEvents\n```golang\ntype APIEvents struct {\n\tPagination APIPagination `json:\"pagination,omitempty\"`\n\tEvents     []APIEvent    `json:\"data,omitempty\"`\n\tErrors     []APIError    `json:\"errors,omitempty\"`\n}\n```\n\n### API\n#### APIError\n```golang\ntype APIError struct {\n\tType    string `json:\"type\"`\n\tMessage string `json:\"message\"`\n}\n```\n#### APIPagination\n```golang\ntype APIPagination struct {\n\tOrder          string\n\tStarting_after string\n\tEnding_before  string\n\tTotal          int\n\tLimit          int\n\tPrevious_uri   string\n\tNext_uri       string\n\tYielded        int\n\tCursor_range   []string\n}\n```\n#### Money\n```golang\ntype Money struct {\n\tAmount   float64 `json:\"amount,string,omitempty\"`\n\tCurrency string  `json:\"currency,omitempty\"`\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkristenpire%2Fcoinbase-commerce-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkristenpire%2Fcoinbase-commerce-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkristenpire%2Fcoinbase-commerce-go/lists"}