Skip to content

Simple Payments

Pay Now Button

Add button

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 to see how to add a button to your WIX site.

Squarespace

Click here to see how to add a button to your Squarespace site.

WordPress

Click here to see how to add a button to your WordPress site.

Shopify

Click here to see how to add a button to your Shopify site.

Copy URL

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.

Set URL on button

All you have to do is add the URL to the button. Replace your URL with the one between the quotation marks.

javascript
<a href="{https://sandbox.gosparrowone.com}/spp/example-page">Pay Now</a>

Url Parameters

Custom Fields

Comma separate the custom field ids and values you want to prefill. You can get the custom field ID from the Control Panel under Manage->Custom Fields.

Colon separate the custom field id and value.

javascript
{https://sandbox.gosparrowone.com}/spp/example-page?custom_fields=field1ID:value,field2ID:value

// Example
{https://sandbox.gosparrowone.com}/spp/beef_jerky?custom_fields=cotpggp97i67muer2dd0:meat,coyqg1p97i67muer2dd1:spicy

Products

Comma separate the product ids and quantities you want to prefill. You can get the product ID from the Control Panel under Shopping->Products->Edit Product->ID (upper right hand corner).

Colon separate the product id, quantity, price

javascript
{https://sandbox.gosparrowone.com}/spp/example-page?add_products=product1ID:quantity:price,product2ID:quantity:price

// Example
{https://sandbox.gosparrowone.com}/spp/beef_jerky?add_products=cjocdq45co1epquvdn60:2:8.23,cjocdq45co1epquvdn61:1:3.50

Plan

Select a plan automatically on page load using a plan ID. You can get the plan ID from the Control Panel under Simple Payments->Plans->Edit Plan->ID (upper left hand corner).

javascript
{https://sandbox.gosparrowone.com}/spp/example-page?add_plan=planID

// Example
{https://sandbox.gosparrowone.com}/spp/beef_jerky?add_plan=cron36bug2jkcqd9mij0

Amount

If you have preset amounts, you can set an amount to be selected on page load using the add_amount query string parameter.

javascript
{https://sandbox.gosparrowone.com}/spp/example-page?add_amount={integer}

The example below will set the amount to $1.00 on page load.

javascript
// Example
{https://sandbox.gosparrowone.com}/spp/beef_jerky?add_amount=100

Custom Amount

If you have custom amount enabled, you can set an amount to be prefilled on page load using the add_custom_amount query string parameter.

javascript
{https://sandbox.gosparrowone.com}/spp/example-page?add_custom_amount={float or integer}

Both examples below will set the amount to $1.00 on page load.

javascript
// Example using an integer.
{https://sandbox.gosparrowone.com}/spp/beef_jerky?add_custom_amount=100

// Example using a float.
{https://sandbox.gosparrowone.com}/spp/beef_jerky?add_custom_amount=1.00

API

Create product

Request Method: POST

URL Endpoint: /api/merchant/{merchantid}/product

NameTypeDefaultDescriptionRequiredRegex
skustringProduct Skutrue([0-9a-z]{0-20})
namestringdisplay nametrue([0-9a-z -]{0-100})
imgstringproduct image (base64 encoded)false
priceunsigned intunit pricetrue([0-9a-z -]{0-100})
fixed_amountbooleanshould we lock the amount or allow the end user to customize the amounttrue
fixed_qtybooleanshould we lock the quantity or allow the end user to customize the quantitytrue
descriptionstringitem descriptiontrue254 characters

Create recurring plan

Request Method: POST

URL Endpoint: /api/recurring/plan

NameTypeDefaultDescriptionRequiredRegex
namestringplan nametrue([0-9a-z -]{0-100})
amountunsigned intAmount to be billed in cents (100 = $1.00)true([0-9a-z -]{0-100})
currencystringcurrency "USD"trueUSD
billing_cycle_intervalintegerHow often to run the billing cycle (run every X months)
billing_frequencystring literal"monthly"How often to run the plan within a billing cycle. ("monthly", "twice_monthly", "daily")*
billing_daysstringnullWhich 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".*
durationinteger0Number of times for the discount to be billed (use 0 if you want the plan to persist until cancelled)
features.allow_custom_amountbooleanfalseShoule we allow a custom amount to be usedtrue([0-9a-z -]{0-100})
add_onsarray of objectsEnumerates add-ons for a recurring plan
add_ons[#]
    .id
stringID of the referenced add_on
add_ons[#]
    .name
stringDisplay name for the add_on (optional, this overrides the add_ons value)
add_ons[#]
    .description
stringDescription for the add_on (optional, this overrides the add_ons value)
add_ons[#]
    .amount
intAmount to be added (optional, this overrides the add_ons value)
add_ons[#]
    .duration
intDuration for the add_on to be billed (optional, this overrides the add_ons value)
discountsarray of objectsEnumerates discounts for a recurring plan
discounts[#]
    .id
stringID of the referenced discount
discounts[#]
    .name
stringDisplay name for the discount (optional, this overrides the discount value)
discounts[#]
    .description
stringDescription for the discount (optional, this overrides the discount value)
discounts[#]
    .amount
intAmount to be discounted (optional, this overrides the discount value)
discounts[#]
    .duration
intDuration for the discount to be billed (optional, this overrides the discount value)

Create custom field

Request Method: POST

URL Endpoint: /api/customfields

NameTypeDefaultDescriptionRequiredRegex
namestringdisplay nametrue([0-9a-z -]{0-100})
typestringgroup name for referencing groups of custom fields([0-9a-z]{0-50})
group_namestringgroup name for referencing groups of custom fields([0-9a-z]{0-50})
requiredbooleanshould we require this fieldfalse
validation_typestringHow should we validate these values.(open
valuesarray({name:string, value: string})Values are an array of objects with keys of name and value

Create Simple Payments

Request Method: POST

URL Endpoint: /api/merchant/{merchantid}/simple-payment

NameTypeDefaultDescriptionRequiredRegex
form_typestringSimple Payments Page Type(donation)
slugstringThis is the URL slug appended to /spp/true([0-9a-z]{0-20})
namestringdisplay nametrue([0-9a-z -]{0-100})
titlestringSimple Payments Page Titletrue([0-9a-z -]{0-100})
descriptionstringSimple Payments Page descriptiontrue254 characters
payment_settingsarray of objectsEnumerates payment types to accept
payment_settings[#]
    .payment_method
stringAllows card and ach payments(cardach)
layoutstringPage Layout to use.true(full
image_urlstringPage image (base64 encoded)false
background_colorstringBackground color to use, only if not using layout fulltrue
amount_headerstringPage heading over Amounts sectionfalse([0-9a-z -]{0-100})
amount_optionsarray of unsigned integersEnumerates predefined amounts to accept
manual_amountbooleanShould we allow custom amounts to be entered? Only available if not using products or plansfalse
plans_headerstringPage heading over Plans sectionfalse([0-9a-z -]{0-100})
plan_idsarray of stringsEnumerates plan ids to make available
products_headerstringPage heading over Products sectionfalse([0-9a-z -]{0-100})
products_idsarray of stringsEnumerates product ids to make available
custom_fields_headerstringPage heading over Custom Fields sectionfalse([0-9a-z -]{0-100})
custom_field_idsarray of stringsEnumerates custom fields ids to make available
success_urlstringWhere to redirect after a successful paymentfalse