# Simple Payments
# Add a Pay Now Button to your Website
# 1. Add a button to your website
First you need to add a button to your website and add "Pay Now" as the button text. Below you will find examples of the most popular E-commerce Platforms. If you cannot find yours in the list, let us know.
# WIX
Click here (opens new window) to see how to add a button to your WIX site.
# Squarespace
Click here (opens new window) to see how to add a button to your Squarespace site.
# WordPress
Click here (opens new window) to see how to add a button to your WordPress site.
# Shopify
Click here (opens new window) to see how to add a button to your Shopify site.
# 2. Copy your URL from the Control Panel
Log in to the Control Panel and go to Simple Payments/Pages. Choose the form you want to use. Click on the 3 dots and Copy Page URL
.
# 3. Add the URL to the button
All you have to do is add the URL to the button. Replace your URL with the one between the quotation marks.
<a href="{https://sandbox.fluidpay.com}/spp/example-page">Pay Now</a>
# Simple Payments API Reference
# Create a new product
Request Method:
POST
URL Endpoint:
/api/merchant/{merchantid}/product
Name | Type | Default | Description | Required | Regex |
---|---|---|---|---|---|
merchant_id | string | Merchant gateway id | true | ([0-9a-v]{20}) | |
sku | string | Product Sku | true | ([0-9a-z]{0-20}) | |
name | string | display name | true | ([0-9a-z -]{0-100}) | |
img | string | product image (base64 encoded) | false | ||
price | unsigned int | unit price | true | ([0-9a-z -]{0-100}) | |
fixed_amount | boolean | should we lock the amount or allow the end user to customize the amount | true | ||
fixed_qty | boolean | should we lock the quantity or allow the end user to customize the quantity | true | ||
description | string | item description | true | 254 characters |
{
"merchant_id": "aucio551tlv85l7moe5g",
"sku": "PRODUCTSKU",
"name": "TESTPRODUCT",
"img": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...==",
"price": 100,
"fixed_amount": true,
"fixed_qty": true,
"description": "DESCRIPTION GOES HERE"
}
{
"status": "success",
"msg": "success",
"data": {
"id": "cjocdq45co1epquvdn60",
"public_hash": "32058375-d240-456a-a790-b3896a7d5381",
"merchant_id": "aucio551tlv85l7moe5g",
"sku": "PRODUCTSKU",
"name": "TESTPRODUCT",
"img": "cjocdq45co1epquvdn6g.jpg",
"price": 100,
"local_tax": 0,
"national_tax": 0,
"fixed_amount": true,
"fixed_qty": true,
"unit_of_measure": null,
"description": "DESCRIPTION GOES HERE",
"created_at": "2023-08-31T16:59:20.919650945Z",
"updated_at": "2023-08-31T16:59:20.919652437Z",
"deleted_at": null
}
}
# Create a new recurring plan
Request Method:
POST
URL Endpoint:
/api/recurring/plan
Name | Type | Default | Description | Required | Regex |
---|---|---|---|---|---|
name | string | plan name | true | ([0-9a-z -]{0-100}) | |
amount | unsigned int | Amount to be billed in cents (100 = $1.00) | true | ([0-9a-z -]{0-100}) | |
currency | string | currency "USD" | true | USD | |
billing_cycle_interval | integer | How often to run the billing cycle (run every X months) | |||
billing_frequency | string literal | "monthly" | How often to run the plan within a billing cycle. ("monthly", "twice_monthly", "daily") | * | |
billing_days | string | null | Which day of the month to bill on. If "twice_monthly" then comma separate dates ("1, 15"). For the last day of the month, use "0". | * | |
duration | integer | 0 | Number of times for the discount to be billed (use 0 if you want the plan to persist until cancelled) | ||
features.allow_custom_amount | boolean | false | Shoule we allow a custom amount to be used | true | ([0-9a-z -]{0-100}) |
add_ons | array of objects | Enumerates add-ons for a recurring plan | |||
add_ons[#] .id | string | ID of the referenced add_on | |||
add_ons[#] .name | string | Display name for the add_on (optional, this overrides the add_ons value) | |||
add_ons[#] .description | string | Description for the add_on (optional, this overrides the add_ons value) | |||
add_ons[#] .amount | int | Amount to be added (optional, this overrides the add_ons value) | |||
add_ons[#] .duration | int | Duration for the add_on to be billed (optional, this overrides the add_ons value) | |||
discounts | array of objects | Enumerates discounts for a recurring plan | |||
discounts[#] .id | string | ID of the referenced discount | |||
discounts[#] .name | string | Display name for the discount (optional, this overrides the discount value) | |||
discounts[#] .description | string | Description for the discount (optional, this overrides the discount value) | |||
discounts[#] .amount | int | Amount to be discounted (optional, this overrides the discount value) | |||
discounts[#] .duration | int | Duration for the discount to be billed (optional, this overrides the discount value) |
{
"name": "TESTPLAN",
"amount": 1000,
"currency": "USD",
"billing_cycle_interval": 1,
"billing_frequency": "monthly",
"billing_days": "15",
"duration": 0,
"description": "",
"subscription_count": 0,
"add_ons": [],
"discounts": [],
"total_add_ons": 0,
"total_discounts": 0,
"features": {
"allow_custom_amount": true
}
}
{
"status": "success",
"msg": "success",
"data": {
"id": "cjocfa45co1epquvdnng",
"name": "TESTPLAN",
"description": "",
"amount": 1000,
"currency": "usd",
"billing_cycle_interval": 1,
"billing_frequency": "monthly",
"billing_days": "15",
"total_add_ons": 0,
"total_discounts": 0,
"duration": 0,
"add_ons": null,
"discounts": null,
"charge_on_day": false,
"features": {
"allow_custom_amount": true
},
"created_at": "2023-08-31T17:02:32.027539188Z",
"updated_at": "2023-08-31T17:02:32.027539188Z"
}
}
# Create a new custom field
Request Method:
POST
URL Endpoint:
/api/customfields
Name | Type | Default | Description | Required | Regex |
---|---|---|---|---|---|
merchant_id | string | Merchant gateway id | true | ([0-9a-v]{20}) | |
name | string | display name | true | ([0-9a-z -]{0-100}) | |
required | boolean | should we require this field | false | ||
group_name | string | group name for referencing groups of custom fields | ([0-9a-z]{0-50}) | ||
validation_type | string | How should we validate these values. | (open | ||
type | string | group name for referencing groups of custom fields | ([0-9a-z]{0-50}) |
{
"name": "TESTCUSTOMFIELD",
"type": "text",
"required": true,
"group_name": "SimplePayments",
"validation_type": "open",
"merchant_id": "aucio551tlv85l7moe5g",
"values": null
}
{
"status": "success",
"msg": "success",
"data": {
"id": "cjocg8k5co1epquvdnog",
"name": "TESTCUSTOMFIELD",
"group_name": "SimplePayments",
"type": "text",
"required": true,
"validation_type": "open",
"values": null,
"created_at": "2023-08-31T17:04:35Z",
"updated_at": "2023-08-31T17:04:35Z",
"deleted_at": "0001-01-01T00:00:00Z"
}
}
{
"name": "TESTMulti",
"group_name": "SimplePayments",
"type": "multiselect",
"required": true,
"validation_type": "open",
"values": [
{
"name": "Option1",
"value": "Option1Value"
},
{
"name": "Option2",
"value": "Option2Value"
}
],
"created_at": "2023-08-31T17:06:32Z",
"updated_at": "2023-08-31T17:06:32Z",
"deleted_at": "0001-01-01T00:00:00Z"
}
{
"status": "success",
"msg": "success",
"data": {
"id": "cjocg8k5co1epquvdnog",
"name": "TESTCUSTOMFIELD",
"group_name": "SimplePayments",
"type": "text",
"required": true,
"validation_type": "open",
"values": null,
"created_at": "2023-08-31T17:04:35Z",
"updated_at": "2023-08-31T17:04:35Z",
"deleted_at": "0001-01-01T00:00:00Z"
}
}
# Create a new Simple Payments page
Request Method:
POST
URL Endpoint:
/api/merchant/{merchantid}/simple-payment
Name | Type | Default | Description | Required | Regex |
---|---|---|---|---|---|
form_type | string | Simple Payments Page Type | (donation) | ||
slug | string | This is the URL slug appended to /spp/{slug} | true | ([0-9a-z]{0-20}) | |
name | string | display name | true | ([0-9a-z -]{0-100}) | |
title | string | Simple Payments Page Title | true | ([0-9a-z -]{0-100}) | |
description | string | Simple Payments Page description | true | 254 characters | |
payment_settings | array of objects | Enumerates payment types to accept | |||
payment_settings[#] .payment_method | string | Allows card and ach payments | (card | ach) | |
layout | string | Page Layout to use. | true | (full | |
image_url | string | Page image (base64 encoded) | false | ||
background_color | string | Background color to use, only if not using layout full | true | ||
amount_header | string | Page heading over Amounts section | false | ([0-9a-z -]{0-100}) | |
amount_options | array of unsigned integers | Enumerates predefined amounts to accept | |||
manual_amount | boolean | Should we allow custom amounts to be entered? Only available if not using products or plans | false | ||
plans_header | string | Page heading over Plans section | false | ([0-9a-z -]{0-100}) | |
plan_ids | array of strings | Enumerates plan ids to make available | |||
products_header | string | Page heading over Products section | false | ([0-9a-z -]{0-100}) | |
products_ids | array of strings | Enumerates product ids to make available | |||
custom_fields_header | string | Page heading over Custom Fields section | false | ([0-9a-z -]{0-100}) | |
custom_field_ids | array of strings | Enumerates custom fields ids to make available | |||
success_url | string | Where to redirect after a successful payment | false |
{
"form_type": "donation",
"slug": "fp-simple-pay-test",
"name": "SimplePaymentsTest",
"title": "SimplePaymentsTest",
"description": "SimplePaymentsTest Description",
"payment_settings": [
{
"payment_method": "card"
},
{
"payment_method": "ach"
}
],
"layout": "horizontal",
"image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...",
"background_color": "#EBEBEB",
"amounts_header": "Amount Header",
"amount_options": [
1000,
2000
],
"manual_amount": false,
"plans_header": "Recurring Headers",
"plan_ids": [
"cjocfa45co1epquvdnng"
],
"custom_fields_header": "Custom Fields",
"custom_field_ids": [
"cjocg8k5co1epquvdnog",
"cjoch645co1epquvdnrg"
],
"products_header": "Product Header",
"product_ids": [
"cjocdq45co1epquvdn60"
],
"success_url": "https://www.google.com"
}
{
"status": "success",
"msg": "success",
"data": {
"id": "cjociqs5co1epquvdnv0",
"merchant_id": "aucio551tlv85l7moe5g",
"form_type": "donation",
"slug": "fp-simple-pay-test",
"name": "SimplePaymentsTest",
"title": "SimplePaymentsTest",
"description": "SimplePaymentsTest Description",
"payment_settings": [
{
"payment_method": "card",
"processor_id": ""
},
{
"payment_method": "ach",
"processor_id": ""
}
],
"layout": "horizontal",
"image_url": "https://storage.googleapis.com/merchant-files-dev/cjociqs5co1epquvdnug.jpg",
"background_color": "#EBEBEB",
"amounts_header": "Amount Header",
"amount_options": [
1000,
2000
],
"manual_amount": false,
"plans_header": "Recurring Headers",
"plan_ids": [
"cjocfa45co1epquvdnng"
],
"manual_plan_amount": false,
"custom_fields_header": "Custom Fields",
"custom_field_ids": [
"cjocg8k5co1epquvdnog",
"cjoch645co1epquvdnrg"
],
"products_header": "Product Header",
"product_ids": [
"cjocdq45co1epquvdn60"
],
"success_url": "https://www.google.com",
"created_at": "2023-08-31T17:10:03.922615602Z",
"updated_at": "2023-08-31T17:10:03.922615693Z"
}
}