{"id":37020641,"url":"https://github.com/cryptopay-dev/cryptopay-java","last_synced_at":"2026-01-14T02:24:38.588Z","repository":{"id":43882738,"uuid":"459130794","full_name":"cryptopay-dev/cryptopay-java","owner":"cryptopay-dev","description":"Cryptopay Business Java library","archived":false,"fork":false,"pushed_at":"2025-08-29T13:36:28.000Z","size":197,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-08-29T14:19:57.913Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://business.cryptopay.me","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptopay-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2022-02-14T11:16:47.000Z","updated_at":"2024-12-23T07:59:04.000Z","dependencies_parsed_at":"2024-12-16T15:34:26.290Z","dependency_job_id":"fd1af6a1-9711-44f3-9380-db69e5f833cf","html_url":"https://github.com/cryptopay-dev/cryptopay-java","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cryptopay-dev/cryptopay-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopay-dev%2Fcryptopay-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopay-dev%2Fcryptopay-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopay-dev%2Fcryptopay-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopay-dev%2Fcryptopay-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptopay-dev","download_url":"https://codeload.github.com/cryptopay-dev/cryptopay-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptopay-dev%2Fcryptopay-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-01-14T02:24:38.161Z","updated_at":"2026-01-14T02:24:38.581Z","avatar_url":"https://github.com/cryptopay-dev.png","language":"Java","readme":"# Cryptopay Java Library\n\nCryptopay - the official Java client for the Cryptopay API.\n\nCryptopay is a payment gateway and business wallet that allows merchants to automate the processes of accepting cryptocurrency payments and payouts from their customers, as well as making currency exchange transactions and receiving data on the transaction history and account balance statuses for reporting.\n\nFor more information, please visit [Cryptopay API docs](https://developers.cryptopay.me).\n\n# Table of contents\n\n* [Installation](#installation)\n* [Configuration](#configuration)\n* [Usage](#usage)\n  * [Complete examples](#complete-examples)\n  * [Accounts](#accounts)\n  * [Channels](#channels)\n  * [CoinWithdrawals](#coinwithdrawals)\n  * [Coins](#coins)\n  * [Customers](#customers)\n  * [ExchangeTransfers](#exchangetransfers)\n  * [Invoices](#invoices)\n  * [Rates](#rates)\n  * [Subscriptions](#subscriptions)\n  * [Transactions](#transactions)\n* [Callbacks](#callbacks)\n* [Development](#development)\n  * [Local build](#local-build)\n  * [Unit tests](#unit-tests)\n  * [Coding conventions](#coding-conventions)\n* [Contributing](#contributing)\n* [License](#license)\n\n## Installation\n\nFor _Maven_, add the following dependency to your `pom.xml`:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eme.cryptopay\u003c/groupId\u003e\n    \u003cartifactId\u003ecryptopay-java\u003c/artifactId\u003e\n    \u003cversion\u003e3.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nFor _Gradle_, add the following dependency to your `build.gradle`:\n\n```groovy\nimplementation group: 'me.cryptopay', name: 'cryptopay-java', version: '3.0.0'\n```\n\n### Requirements\n\n* Java 11+\n\n## Configuration\n\n### Create API credentials\n\nLearn mode about API credentials at [Developers guide](https://developers.cryptopay.me/guides/api-credentials).\n\n### Configure library\n\n```java\nimport me.cryptopay.Cryptopay;\n\nCryptopay cryptopay = Cryptopay.builder()\n    .apiUrl(Cryptopay.API_URL_SANDBOX)\n    .apiKey(System.getenv(\"CRYPTOPAY_API_KEY\"))\n    .apiSecret(System.getenv(\"CRYPTOPAY_API_SECRET\"))\n    .callbackSecret(System.getenv(\"CRYPTOPAY_CALLBACK_SECRET\"))\n    .build()\n```\n\n## Usage\n\n### Complete examples\n\nExamples of usage of the library can be found [here](example).\n\n### Accounts\n\n\n#### List accounts\n\n```java\nAccountListResult result = cryptopay.accounts().list().execute();\n```\n\n#### List account transactions\n\n```java\nUUID accountId = UUID.fromString(\"31804390-d44e-49e9-8698-ca781e0eb806\");\n\nTransactionListResult result = cryptopay.accounts().listTransactions(accountId).execute();\n```\n\n### Channels\n\nA channel is a static cryptocurrency address that may be assigned to each one of your customers.\n\n[Channels API docs](https://developers.cryptopay.me/guides/channels)\n\n#### Create a channel\n\n```java\nChannelParams channelParams = new ChannelParams();\nchannelParams.setName(\"Channel name\");\nchannelParams.setPayCurrency(\"ETH\");\nchannelParams.setReceiverCurrency(\"BTC\");\n\nChannelResult result = cryptopay.channels().create(channelParams).execute();\n```\n\n#### List channels\n\n```java\nChannelListResult result = cryptopay.channels().list().execute();\n```\n\n#### List channel payments\n\n```java\nUUID channelId = UUID.fromString(\"15d0bb11-1e9f-4295-bec5-abd9d5a906a1\");\n\nChannelPaymentListResult result = cryptopay.channels().listPayments(channelId).execute();\n```\n\n#### Retrieve a channel\n\n```java\nUUID channelId = UUID.fromString(\"15d0bb11-1e9f-4295-bec5-abd9d5a906a1\");\n\nChannelResult result = cryptopay.channels().retrieve(channelId).execute();\n```\n\n#### Retrieve a channel by custom id\n\n```java\nString customId = \"CHANNEL-123\";\n\nChannelResult result = cryptopay.channels().retrieveByCustomId(customId).execute();\n```\n\n#### Retrieve a channel payment\n\n```java\nUUID channelId = UUID.fromString(\"15d0bb11-1e9f-4295-bec5-abd9d5a906a1\");\nUUID channelPaymentId = UUID.fromString(\"704291ec-0b90-4118-89aa-0c9681c3213c\");\n\nChannelPaymentResult result = cryptopay.channels().retrievePayment(channelId, channelPaymentId).execute();\n```\n\n#### Update a channel\n\n```java\nUUID channelId = UUID.fromString(\"15d0bb11-1e9f-4295-bec5-abd9d5a906a1\");\n\nChannelUpdateParams channelUpdateParams = new ChannelUpdateParams();\nchannelUpdateParams.setStatus(ChannelStatus.DISABLED);\n\nChannelResult result = cryptopay.channels().update(channelId, channelUpdateParams).execute();\n```\n\n### CoinWithdrawals\n\nIn addition to accepting payments through the Cryptopay payment gateway, it is also possible to make payments to your customers in any of the cryptocurrency currently supported by Cryptopay. In Cryptopay, these payments are called “Coin Withdrawal”. The process of requesting coin withdrawal is almost the same for a customer in Cashier as the process of making a deposit with one exception - the customer will need to specify the address of the wallet he wants to send the cryptocurrency to.\n\n[Coin withdrawals API docs](https://developers.cryptopay.me/guides/payouts)\n\n#### Commit a withdrawal\n\n```java\nCoinWithdrawalParams coinWithdrawalParams = new CoinWithdrawalParams();\ncoinWithdrawalParams.setAddress(\"2Mz3bcjSVHG8uQJpNjmCxp24VdTjwaqmFcJ\");\ncoinWithdrawalParams.setChargedAmount(BigDecimal.valueOf(100.0));\ncoinWithdrawalParams.setChargedCurrency(\"EUR\");\ncoinWithdrawalParams.setReceivedCurrency(\"BTC\");\ncoinWithdrawalParams.setForceCommit(false);\n\nCoinWithdrawal coinWithdrawal = cryptopay.coinWithdrawals().create(coinWithdrawalParams).execute().getData();\n\nCoinWithdrawalResult result = cryptopay.coinWithdrawals().commit(coinWithdrawal.getId()).execute();\n```\n\n#### Create a withdrawal\n\n[Documentation](https://developers.cryptopay.me/guides/payouts/create-a-coin-withdrawal)\n```java\nCoinWithdrawalParams coinWithdrawalParams = new CoinWithdrawalParams();\ncoinWithdrawalParams.setAddress(\"2Mz3bcjSVHG8uQJpNjmCxp24VdTjwaqmFcJ\");\ncoinWithdrawalParams.setChargedAmount(BigDecimal.valueOf(100.0));\ncoinWithdrawalParams.setChargedCurrency(\"EUR\");\ncoinWithdrawalParams.setReceivedCurrency(\"BTC\");\ncoinWithdrawalParams.setForceCommit(false);\n\nCoinWithdrawalResult result = cryptopay.coinWithdrawals().create(coinWithdrawalParams).execute();\n```\n\n#### List withdrawals\n\n```java\nCoinWithdrawalListResult result = cryptopay.coinWithdrawals().list().execute();\n```\n\n#### List network fees\n\n```java\nNetworkFeeListResult result = cryptopay.coinWithdrawals().listNetworkFees().execute();\n```\n\n#### Retrieve a withdrawal\n\n```java\nUUID coinWithdrawalId = UUID.fromString(\"3cf9d1c4-6191-4826-8cae-2c717810c7e9\");\n\nCoinWithdrawalResult result = cryptopay.coinWithdrawals().retrieve(coinWithdrawalId).execute();\n```\n\n#### Retrieve a withdrawal by custom id\n\n```java\nString customId = \"PAYMENT-123\";\n\nCoinWithdrawalResult result = cryptopay.coinWithdrawals().retrieveByCustomId(customId).execute();\n```\n\n### Coins\n\n\n#### List supported coins\n\n```java\nCoinListResult result = cryptopay.coins().list().execute();\n```\n\n### Customers\n\nCustomer objects allow you to reject High-Risk transactions automatically, and to track multiple transactions, that are associated with the same customer.\n\n\n#### Create a customer\n\n```java\nCustomerAddress customerAddress = new CustomerAddress();\ncustomerAddress.setAddress(\"2NGPwyaRTrKpjf9njHQDfXAReb2iwbYkZrg\");\ncustomerAddress.setCurrency(\"BTC\");\ncustomerAddress.setNetwork(\"bitcoin\");\n\nCustomerParams customerParams = new CustomerParams();\ncustomerParams.setId(\"CUSTOMER-123\");\ncustomerParams.setCurrency(\"BTC\");\ncustomerParams.setAddresses(List.of(customerAddress));\n\nCustomerResult result = cryptopay.customers().create(customerParams).execute();\n```\n\n#### List customers\n\n```java\nCustomerListResult result = cryptopay.customers().list().execute();\n```\n\n#### Retrieve a customer\n\n```java\nString customerId = \"CUSTOMER-123\";\n\nCustomerResult result = cryptopay.customers().retrieve(customerId).execute();\n```\n\n#### Update a customer\n\n```java\nString customerId = \"CUSTOMER-123\";\n\nCustomerAddress customerAddress = new CustomerAddress();\ncustomerAddress.setAddress(\"2N9wPGx67zdSeAbXi15qHgoZ9Hb9Uxhd2uQ\");\ncustomerAddress.setCurrency(\"BTC\");\ncustomerAddress.setNetwork(\"bitcoin\");\n\nCustomerUpdateParams customerUpdateParams = new CustomerUpdateParams();\ncustomerUpdateParams.setAddresses(List.of(customerAddress));\n\nCustomerResult result = cryptopay.customers().update(customerId, customerUpdateParams).execute();\n```\n\n### ExchangeTransfers\n\n\n#### Commit an exchange transfer\n\n```java\nExchangeTransferParams exchangeTransferParams = new ExchangeTransferParams();\nexchangeTransferParams.setChargedAmount(BigDecimal.valueOf(10));\nexchangeTransferParams.setChargedCurrency(\"EUR\");\nexchangeTransferParams.setReceivedCurrency(\"BTC\");\nexchangeTransferParams.setForceCommit(false);\n\nExchangeTransfer exchangeTransfer = cryptopay.exchangeTransfers().create(exchangeTransferParams)\n    .execute()\n    .getData();\n\nExchangeTransferResult result = cryptopay.exchangeTransfers().commit(exchangeTransfer.getId()).execute();\n```\n\n#### Create an exchange transfer\n\n```java\nExchangeTransferParams exchangeTransferParams = new ExchangeTransferParams();\nexchangeTransferParams.setChargedAmount(BigDecimal.valueOf(10));\nexchangeTransferParams.setChargedCurrency(\"EUR\");\nexchangeTransferParams.setReceivedCurrency(\"BTC\");\nexchangeTransferParams.setForceCommit(false);\n\nExchangeTransferResult result = cryptopay.exchangeTransfers().create(exchangeTransferParams).execute();\n```\n\n#### Retrieve an exchange transfer\n\n```java\nUUID exchangeTransferId = UUID.fromString(\"2c090f99-7cc1-40da-9bca-7caa57b4ebfb\");\n\nExchangeTransferResult result = cryptopay.exchangeTransfers().retrieve(exchangeTransferId).execute();\n```\n\n### Invoices\n\nAn invoice is a request for a cryptocurrency payment which contains a unique BTC, LTC, ETH or XRP address and the amount that has to be paid while the invoice is valid.\n\n[Invoices API docs](https://developers.cryptopay.me/guides/invoices)\n\n#### Commit invoice recalculation\n\n```java\nUUID invoiceId = UUID.fromString(\"2738682a-11ff-4013-8380-6a70df995ea9\");\n\nInvoiceRecalculationParams invoiceRecalculationParams = new InvoiceRecalculationParams();\ninvoiceRecalculationParams.setForceCommit(false);\n\nInvoiceRecalculation recalculation = cryptopay.invoices()\n    .createRecalculation(invoiceId, invoiceRecalculationParams)\n    .execute()\n    .getData();\n\nInvoiceRecalculationResult result = cryptopay.invoices()\n    .commitRecalculation(invoiceId, recalculation.getId())\n    .execute();\n```\n\n#### Create an invoice\n\n```java\nInvoiceParams invoiceParams = new InvoiceParams();\ninvoiceParams.setCustomId(\"PAYMENT-123\");\ninvoiceParams.setPayCurrency(\"BTC\");\ninvoiceParams.setPriceAmount(BigDecimal.valueOf(100.0));\ninvoiceParams.setPriceCurrency(\"EUR\");\ninvoiceParams.setMetadata(Map.of(\"custom-key\", \"custom-value\"));\ninvoiceParams.setSuccessRedirectUrl(URI.create(\"https://success.example.com\"));\ninvoiceParams.setUnsuccessRedirectUrl(URI.create(\"https://unsuccess.example.com\"));\n\nInvoiceResult result = cryptopay.invoices().create(invoiceParams).execute();\n```\n\n#### Create invoice recalculation\n\n```java\nUUID invoiceId = UUID.fromString(\"2738682a-11ff-4013-8380-6a70df995ea9\");\n\nInvoiceRecalculationParams invoiceRecalculationParams = new InvoiceRecalculationParams();\ninvoiceRecalculationParams.setForceCommit(false);\n\nInvoiceRecalculationResult result = cryptopay.invoices()\n    .createRecalculation(invoiceId, invoiceRecalculationParams)\n    .execute();\n```\n\n#### Create invoice refund\n\n```java\nUUID invoiceId = UUID.fromString(\"7e274430-e20f-4321-8748-20824287ae44\");\n\nInvoiceRefundResult result = cryptopay.invoices().createRefund(invoiceId).execute();\n```\n\n#### List invoices\n\n```java\nInvoiceListResult result = cryptopay.invoices().list().execute();\n```\n\n#### List invoice refunds\n\n```java\nUUID invoiceId = UUID.fromString(\"7e274430-e20f-4321-8748-20824287ae44\");\n\nInvoiceRefundListResult result = cryptopay.invoices().listRefunds(invoiceId).execute();\n```\n\n#### Retrieve an invoice\n\n```java\nUUID invoiceId = UUID.fromString(\"c8233d57-78c8-4c36-b35e-940ae9067c78\");\n\nInvoiceResult result = cryptopay.invoices().retrieve(invoiceId).execute();\n```\n\n#### Retrieve an invoice by custom_id\n\n```java\nString customId = \"PAYMENT-123\";\n\nInvoiceResult result = cryptopay.invoices().retrieveByCustomId(\"PAYMENT-123\").execute();\n```\n\n### Rates\n\n\n#### Retrieve all rates\n\n```java\nRatesResult result = cryptopay.rates().all().execute();\n```\n\n#### Retrieve a pair rate\n\n```java\nString baseCurrency = \"BTC\";\nString quoteCurrency = \"EUR\";\n\nRateResult result = cryptopay.rates().retrieve(baseCurrency, quoteCurrency).execute();\n```\n\n### Subscriptions\n\n\n#### Cancel a subscription\n\n```java\nUUID subscriptionId = UUID.fromString(\"64249ede-8969-4d5c-a042-806f9c3e7db3\");\n\nSubscriptionResult result = cryptopay.subscriptions().cancel(subscriptionId).execute();\n```\n\n#### Create a subscription\n\n```java\nSubscriptionParams subscriptionParams = new SubscriptionParams();\nsubscriptionParams.setName(\"Subscription name\");\nsubscriptionParams.setAmount(BigDecimal.valueOf(100.0));\nsubscriptionParams.setCurrency(\"EUR\");\nsubscriptionParams.setPeriod(SubscriptionPeriod.MONTH);\nsubscriptionParams.setPeriodQuantity(3);\nsubscriptionParams.setPayerEmail(\"user@example.com\");\nsubscriptionParams.setStartsAt(OffsetDateTime.now().plusWeeks(1));\n\nSubscriptionResult result = cryptopay.subscriptions().create(subscriptionParams).execute();\n```\n\n#### List subscriptions\n\n```java\nSubscriptionListResult result = cryptopay.subscriptions().list().execute();\n```\n\n#### Retrieve a subscription\n\n```java\nUUID subscriptionId = UUID.fromString(\"64249ede-8969-4d5c-a042-806f9c3e7db3\");\n\nSubscriptionResult result = cryptopay.subscriptions().retrieve(subscriptionId).execute();\n```\n\n#### Retrieve a subscription by custom_id\n\n```java\nString customId = \"PAYMENT-123\";\n\nSubscriptionResult result = cryptopay.subscriptions().retrieveByCustomId(\"PAYMENT-123\").execute();\n```\n\n### Transactions\n\n[Transactions API docs](https://developers.cryptopay.me/guides/transactions)\n\n#### List transactions\n\n```java\nTransactionListResult result = cryptopay.transactions()\n    .list()\n    .referenceType(TransactionReferenceType.INVOICE)\n    .execute();\n```\n\n## Callbacks\n\n[Documentation](https://developers.cryptopay.me/guides/api-basics/callbacks)\n\nEvery callback request contains a `X-Cryptopay-Signature` header which is needed to verify webhook body\n\n```java\nString body = \"{\\\"event\\\":\\\"transaction_created\\\",\\\"data\\\":{\\\"id\\\":\\\"cc75b958-5780-4b34-a33a-cf63b349fbab\\\",\\\"custom_id\\\":\\\"209584732\\\",\\\"customer_id\\\":null,\\\"status\\\":\\\"new\\\",\\\"status_context\\\":null,\\\"address\\\":\\\"2NG8f2EVxN8XJ4DHriRt9q9LkdVCpQZ2UGB\\\",\\\"uri\\\":null,\\\"price_amount\\\":100.0,\\\"price_currency\\\":\\\"EUR\\\",\\\"fee\\\":null,\\\"fee_currency\\\":\\\"EUR\\\",\\\"pay_amount\\\":0.02038328,\\\"pay_currency\\\":\\\"BTC\\\",\\\"paid_amount\\\":0.02038328,\\\"exchange\\\":{\\\"pair\\\":\\\"BTCEUR\\\",\\\"rate\\\":4905.9838,\\\"fee\\\":null,\\\"fee_currency\\\":\\\"EUR\\\"},\\\"transactions\\\":[{\\\"txid\\\":\\\"502e6de0c3b1d129974c55e6cd127fd548e4501ff8e8d9330ea9a30a83dbd16e\\\",\\\"risk\\\":{\\\"score\\\":3.1,\\\"level\\\":\\\"low\\\",\\\"resource_name\\\":\\\"Bitstamp\\\",\\\"resource_category\\\":\\\"Exchange\\\"}}],\\\"name\\\":\\\"invoice name\\\",\\\"description\\\":\\\"invoice description\\\",\\\"metadata\\\":{\\\"foo\\\":\\\"bar\\\"},\\\"success_redirect_url\\\":null,\\\"unsuccess_redirect_url\\\":null,\\\"hosted_page_url\\\":\\\"https://hosted-business.cryptopay.me/invoices/cc75b958-5780-4b34-a33a-cf63b349fbab\\\",\\\"created_at\\\":\\\"2019-05-02T13:56:56Z\\\",\\\"expires_at\\\":\\\"2019-05-02T14:06:56Z\\\"},\\\"type\\\":\\\"Invoice\\\"}\";\nString signature = \"cd6ab5292630005bb79d299bdc64cbe69eedcc8dfd60ff615b5ed40923c23821\";\n\nboolean valid = cryptopay.callbacks().validate(signature, body);\n\nif (valid) {\n    Callback callback = cryptopay.callbacks().parse(body);\n\n    if (callback instanceof ChannelPaymentCallback) {\n        process((ChannelPaymentCallback) callback);\n    } else if (callback instanceof CoinWithdrawalCallback) {\n        process((CoinWithdrawalCallback) callback);\n    } else if (callback instanceof InvoiceCallback) {\n        process((InvoiceCallback) callback);\n    } else {\n\n    }\n}\n```\n\nComplete example of usage is available here: [client-side](src/test/java/me/cryptopay/server/CallbackController.java), [server-side](src/test/java/me/cryptopay/client/CallbackTest.java).\n\n## Development\n\n### Local build\n\nCheck out the source code and run the following command to download all the dependencies and build the library:\n```bash\nmvn clean install\n```\n\n### Coding conventions\n\n[checkstyle.xml](checkstyle.xml) file describes coding conventions. Based on [sun_checks.xml](https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/sun_checks.xml) with some adjustments.\nRules are enforced by `maven-checkstyle-plugin` during the build process.\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/cryptopay-dev/cryptopay-java.\n\n## License\n\nThe library is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptopay-dev%2Fcryptopay-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptopay-dev%2Fcryptopay-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptopay-dev%2Fcryptopay-java/lists"}