πŸŒ• Crypto Donation Flow

This page describes how to perform crypto donation using The Giving Block public API when you are building your native donation form

Get organizations

Get list of organizations available for donations to store their IDs using GetOrganizationsList API call.

You might need detailed information regarding organization for some reasons, for example to check if anonymous donations are allowed or to get public key for card donations. For such data please use GetOrganizationById API call. Please avoid calling GetOrganizationsList every time.

Create deposit address

Use CreateDepositAddress to create Donation address using organization id, pledge amount, currency and donor data. In response you'll get a deposit address and a QR code in case you'd like to show it on the same page. Once you have the address, donors can send crypto to it.

You can get list of supported cryptocurrencies using the [list API endpoint. Use the network property of each currency to display proper disclaimer. For example, we support ERC-20 version of BUSD token and it's indicated as network: ethereum in the response. That being said, donors should not send BUSD using BNB chain, only ethereum network will work.

Supported cryptocurrencies disclaimer and display

In order to create and send crypto donations using The Giving Block API, you must display the below language to donors, or similar language agreed to by The Giving Block. The language may vary per implementation, please contact [email protected] to confirm the specific language to display.

"Send only [ insert currency here ] to this address. Sending other unsupported tokens or NFTs to this address may result in the loss of your donation.”

In your user interface, you must also display the full name of the currency/currencies listed as well as currency type to prevent donor error (sending unsupported currencies on a particular chain) this means including any additional currency identifiers.

Example:
Instead of listing β€œUSDC” as a currency option for your donors, please display β€œUSDC (ERC-20)” to ensure donors are aware this is the ERC-20 compliant version of the USDC currency.

Supporting Ripple cryptocurrency

For this particular cryptocurrency, you should use Destination tag. A destination tag is added to the wallet address to send XRP to an address and returned in createDepositAddress response in the depositTag property. Here is an example of XRP address:

xrpl:<address>?dt=<destination-tag>

depositTag value should be shown in the Destination Tag field.

Please add this line as a disclaimer: Please ensure you enter the address and the tag exactly as instructed. Failure to do so may result in loss of funds.

The example of how we show it:

Webhook notifications

You can subscribe to sending webhook once transaction is detected and synced to our database. Please see Webhook notifications documentation part for more details.

Await Deposit completed event to send receipt email or perform any other actions. This can be disabled per organization or for your API user. For example, if enabled for your user and allowed by organization, The Giving Block will not send any receipt email to the donor.

When transaction is converted to USD, expect to receive a webhook of a type Transaction converted.

πŸ“˜

For more detailed information regarding interaction with the API please check API reference documentation


What’s Next