> For the complete documentation index, see [llms.txt](https://docs.toomuchmedia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.toomuchmedia.com/getting-started/integrations/supported-billers/coinspaid.md).

# CoinsPaid

*Article Topics:* [*Billers*](/getting-started/common-topics/billers.md)

CoinsPaid is a cryptocurrency payment processor. NATS connects to CoinsPaid through its CryptoProcessing payment request API: when a surfer joins, NATS creates a payment request and sends the surfer to the CoinsPaid payment page to complete the purchase in cryptocurrency.

{% hint style="info" %}
**Please Note:** CoinsPaid only supports one-time payments in NATS. Recurring billing (rebills) is not supported, and CoinsPaid does not support the NATS cascade feature.
{% endhint %}

## Set up at CoinsPaid

If you are interested in using CoinsPaid, please contact them directly: <https://coinspaid.com/>

Once your merchant account is set up, you will need the following from your CoinsPaid (CryptoProcessing) dashboard:

* **API Key**
* **API Secret**
* **Region** your account is hosted in (US, EU, or CA)

For more information on CoinsPaid API credentials, see the CryptoProcessing [Authorisation](https://docs.cryptoprocessing.us/api-reference/authorisation) documentation.

### Callback URL

CoinsPaid sends a callback to NATS when a payment request is paid. In your CoinsPaid dashboard, set your callback URL to the following:

```
https://linkdomain/signup/process_coinspaid.php
```

Replace *linkdomain* in the above example with your [linkdomain](/using-nats/nats-admin-features/linkdomain.md).

NATS accepts callbacks from CoinsPaid's known IP addresses. Callbacks from any other IP address are only accepted if their signature matches your API Key and API Secret.

You do not need to configure a success or failure return URL. NATS sends these to CoinsPaid automatically with each payment request.

## Setting Up CoinsPaid in NATS

### Billers Admin

To begin setting up CoinsPaid in NATS, go to the [Billers Admin](/nats-admin/billers.md). Click the **"Add a Biller"** button at the top right of the page, select **"CoinsPaid"** from the drop-down menu, and click **"Add."**

{% hint style="info" %}
**Please Note:** If you don't see CoinsPaid as a biller in NATS, [put in a support ticket](http://clients.toomuchmedia.com/), as you may need an updated version of NATS.
{% endhint %}

When prompted, fill in the following information under the **"Account Info"** section:

* **API Key:** Your CoinsPaid API Key.
* **API Secret:** Your CoinsPaid API Secret.
* **Region:** The region your CoinsPaid account is hosted in. Select **US**, **EU**, or **CA**.
* **Use Staging System:** Enable this to send payment requests to the CoinsPaid sandbox instead of your live account. This is optional.

{% hint style="warning" %}
**Important:** When **Use Staging System** is enabled, all payment requests go to the CoinsPaid sandbox, regardless of the Region you select. Make sure you enter the API Key and API Secret from your sandbox account. Transactions processed this way are marked as test transactions, with `:T` added to the end of the transaction ID. Disable this setting before taking live payments.
{% endhint %}

### Sites Admin

CoinsPaid join options must be configured as a [special join option](/nats-admin/programs/further-reading/special-pricing-options.md).

Navigate to the [Sites Admin](/nats-admin/sites.md), select a site, then select the **Join Options** tab. Once on the tab, select the **"Special Join Options"** tab to add a new Special Option. Select CoinsPaid as the biller, then fill in the following settings:

* **Amount:** The transaction amount of the join option.
* **Currency:** The fiat currency for the Amount. CoinsPaid converts this amount into the cryptocurrency the surfer chooses to pay with.
* **Active Number:** The number of days, hours, or minutes for the duration of the membership.
* **Active Period:** The unit of time for the Active Number. Select **DAY**, **HOUR**, or **MIN**.
* **Override Invoice Title:** The title shown on the CoinsPaid invoice. If left blank, NATS uses the join option name. Titles longer than 50 characters are cut off. This is optional.
* **Invoice Description:** The description shown on the CoinsPaid invoice. If left blank, NATS uses the invoice title. This is optional.

{% hint style="info" %}
**Please Note:** Active Number and Active Period are required because CoinsPaid does not postback information regarding the member's expiration date. NATS sets the member's expiration based on these settings, starting when CoinsPaid confirms the payment.

For example, a special join option with Active Number: 30 and Active Period: DAY will be a join option that expires after 30 days.
{% endhint %}

#### Overriding Account Info per Tour

If you want a site or tour to use a different CoinsPaid account, you can override the API credentials in that tour's "Biller Details" section. In the [Sites Admin](/nats-admin/sites.md), edit the tour, scroll down to the "Biller Details" section, and find the CoinsPaid settings:

* **Override API Key:** The API Key to use for this tour instead of the one in the Billers Admin.
* **Override API Secret:** The API Secret to use for this tour instead of the one in the Billers Admin.

{% hint style="info" %}
**Please Note:** Fill in both the Override API Key and Override API Secret. NATS can only verify callbacks from an override account when both values are set.
{% endhint %}

## Configuration Admin

CoinsPaid requires an email address for every payment request. By default, NATS shows surfers a join page before sending them to CoinsPaid, so they can enter their username, password, and email address.

This join page also includes an optional **Identity Info** section, where surfers can enter their first name, last name, and date of birth. CoinsPaid may ask for this information to process certain payments. NATS only sends these details to CoinsPaid when all three are filled in.

To turn this join page on or off:

1. Navigate to the [Configuration Admin](/nats-admin/configuration.md).
2. Navigate to the **Billers** section.
3. Enable or disable the "**DISPLAY\_COINSPAID\_PREJOIN\_PAGE**" setting.

{% hint style="warning" %}
**Important:** If you disable the join page, NATS generates a random username and password for the member, but it can't collect an email address. Signups without an email address will fail. Make sure you pass the surfer's email address in your join link, as shown below.
{% endhint %}

### Additional Setup Information

If you would like to set up a direct link for CoinsPaid, use the following example:

`https://<your_linkdomain>/signup/signup.php?step=special&special[123]=1&nats=XXXXXXX&signup[username]=member_username&signup[email]=member_email&signup[password]=member_password`

**Ensure you replace the following:**

* replace \<your\_linkdomain> in the above example with your site link domain
* replace 123 with your join option ID
* replace XXXXXXX with your promo NATS code (optional, if not passed then it will become type-in traffic)
* replace member\_username with join member username (optional)
* replace member\_password with join member password (optional)
* replace member\_email with join member email (required if the CoinsPaid join page is disabled)
