Skip to main content

Set up payment providers

You can set up payment providers using the ConsenSys NFT (CNFT) platform UI.

Navigate to the platform dashboard navigation bar and select Settings. Select Payment Integrations.

The Integrations page displays two supported payment providers: Stripe and Coinbase. Integrate with these providers to collect payments from buyers.



You can connect to a Standard or Express Stripe account. Select Connect, then select your platform Stripe account and account type, and select Submit.



Stripe account verification and activation may take a few minutes.

The Stripe payment-intent data includes all the information needed to create a Stripe payment session and set the necessary Stripe promise.

  • account_id - Stripe account ID that requested a checkout session. See Stripe elements provider for more information on creating the Stripe object.

  • client_secret - Client secret for this checkout session's payment intent. Read more here for its use in confirming card payments.

  • mode - Either TEST or LIVE.

  • publishable_key - Publishable key for the Stripe account creating a checkout session. This is used in the loadStripe constructor from stripe-js; read more here.

  • session_id - Universally Unique Identifier (UUID) for this payment intent session.

    Example payload
    "client_secret": "pi_client_secret",
    "account_id": "acct_12345ABCDE",
    "mode": "TEST",
    "publishable_key": "publishable_key",
    "session_id": "62af5a1a-73c2-443c-863f-889aa0c9ddd5"

View the API reference to create a payment intent or create a platform Stripe account for more information.

Coinbase Commerce

To connect to a Coinbase Commerce account, copy the API key from your Settings page on Coinbase, paste the API Key in the API Key input field on the payment integration, and select Connect.


The Coinbase Commerce payment-intent data includes all the information needed to make a payment.

  • coinbase_commerce_charge_id - Universally Unique Identifier (UUID) for the charge.
  • code - User-friendly key for the charge.
  • hosted_url - URL to which the buyer can be navigated in order to get all payment information.
  • status - Status of the charge (see the Coinbase Commerce documentation for more information).
  • addresses - Set of addresses and the corresponding network that payments can be made to; only supported cryptocurrencies are included.
  • pricing - Prices for each supported cryptocurrency.
Example payload
"coinbase_commerce_charge_id": "4d25415d-cb3f-4513-aaf6-75c13ef54ebe",
"code": "13FAJ7BZ",
"hosted_url": "",
"status": "NEW",
"addresses": {
"ethereum": "ethereum mainnet address",
"usdc": "ethereum mainnet address",
"dai": "ethereum mainnet address",
"bitcoincash": "bitcoin cash address",
"dogecoin": "dogecoin address",
"litecoin": "litecoin address",
"bitcoin": "bitcoin address"
"pricing": {
"local": {
"amount": "1.00",
"currency": "USD"
"ethereum": {
"amount": "0.000314000",
"currency": "ETH"
"usdc": {
"amount": "1.000000",
"currency": "USDC"
"dai": {
"amount": "1.000226551000000000",
"currency": "DAI"
"bitcoincash": {
"amount": "0.00274854",
"currency": "BCH"
"dogecoin": {
"amount": "7.36648250",
"currency": "DOGE"
"litecoin": {
"amount": "0.00788924",
"currency": "LTC"
"bitcoin": {
"amount": "0.00002223",
"currency": "BTC"

The simplest approach is to navigate the buyer to the hosted_url and they can initiate the payment from there. The platform updates the charge status and distributes the NFTs when the payment succeeds.

In case of an unsuccessful payment, the platform prevents distributing the NFT. In case of an underpayment, overpayment, or multiple payments, a refund may be required. This must be initiated from within the Coinbase Commerce dashboard.


Processing payment events through Coinbase Commerce requires a webhook endpoint. Select Add an endpoint and add the URL provided to you on the CNFT platform. Select Show shared secret and input this on the platform where requested.