Documentation
Fluidcoins Pay.js
Fluidcoins Pay.js is quick and secure way to receive crypto payments in your application. It works with all Javascript frameworks
Requirement
Nodejs version > 10
Getting Started
1: Register a merchant account on Fluidcoins and get your public API key
Installation
You can install the package via NPM or Yarn;
npm install @fluidcoins/pay.js
OR
yarn add @fluidcoins/pay.js
Usage
Parameters
key
amount
email
onSuccess
-
onLoad
(optional) -
onClose
(optional) -
onError
(optional) -
name
(optional) -
phone
(optional) -
metadata
(optional) -
callback_url
(optional) -
currency
(optional) -
reference
(optional)
key
REQUIRED
This is your Fluidcoins public API key from the Fluidcoins dashboard.
new Fluidcoins({key: 'fluidcoins_public_api_key'})
amount
REQUIRED
This is amount in the smallest unit of currency you'd want to receive from the customer.
NOTE: The minimum amounts are
- 500 NGN for the Nigerian Naira
- 1 USD for the United State Dollars
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 50000 // or 100 for 1 USD
})
email
REQUIRED
This is the email address of the customer
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com'
})
onSuccess
REQUIRED
This is function that will be called when a successful transaction occurs.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})}
})
A JSON payload is passed as argument with the structure below;
{
reference: TRANS_REFERENCE,
coin: 'BTC',
human_readable_amount: 1000,
payment_status: 'underpaid | overpaid | paid_in_full'
}
Payment status could be overpaid, underpaid or paid_in_full
onLoad
OPTIONAL
This closure is called once the Fluidcoins PaySDK loads
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')}
})
onClose
OPTIONAL
This optional closure is called when a user closes the Fluidcoins Widget. It takes no argument
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')}
})
onError
OPTIONAL
This optional closure is called when an error occurs. Error such as session expired, etc.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
})
A JSON payload is passed as argument with the structure below;
{
type: 'expired',
}
Error type could be;
- expired : Payment session for the initiated transaction expired
name
OPTIONAL
This optional parameter; which is the name of customer who want to initiate the transaction. It reflects on the Fluidcoins dashboard.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni'
})
phone
OPTIONAL
This optional parameter; which is the phone number of customer who want to initiate the transaction. It reflects on the Fluidcoins dashboard.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni',
phone: '+2348090909090',
})
reference
OPTIONAL
This optional parameter; which is used to identify the initiated transaction.
NOTE : It must be unique per transaction
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni',
phone: '+2348090909090',
reference: 'random-identifier'
})
metadata
OPTIONAL
This optional parameter, which is should contain data you will like to be passed via webhooks about the transaction. NOTE: The metadata must be an OBJECT
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni',
phone: '+2348090909090',
metadata: {
key: 1
}
})
callback_url
OPTIONAL
This optional parameter is used to open a new window tab when a successful [ underpaid, overpaid, paid_in_full ] payment occurs. NOTE: The callback_url must be a valid URL with a HTTPS scheme . Also, it DOES NOT override the onSuccess() event.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni',
phone: '+2348090909090',
metadata: {
key: 1
},
callback_url: 'https://www.google.com/'
})
currency
OPTIONAL
Possible values are the ISO 4217 currency codes, such as "USD" for the US dollar"
NOTE: It defaults to default currency set on your Fluidcoins dashboard.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni',
phone: '+2348090909090',
metadata: {
key: 1
},
callback_url: 'https://www.google.com/',
currency: 'USD'
})
reference
OPTIONAL
This optional parameter is used as a reference instead of the Fluidcoins auto-generated reference. We recommended random string.
new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onLoad: () => { console.log('Loaded sdk successfully')},
onClose: () => { console.log('User closed widget')},
onError: (error) => { console.log({error})},
name: 'Seun Akanni',
phone: '+2348090909090',
metadata: {
key: 1
},
callback_url: 'https://www.google.com/',
currency: 'USD',
reference: 'REF_random_reference'
})
API References
setup()
This method is used to load the widget unto the DOM, the widget remains hidden after invoking this function until the open() method is called.
const fluidcoins = new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
})
fluidcoins.setup()
open()
This method makes the widget visible to the user.
const fluidcoins = new Fluidcoins({
key: 'fluidcoins_public_api_key',
amount: 100000,
email: 'customer@test.com',
onSuccess: (data) => { console.log({data})},
})
fluidcoins.setup()
fluidcoins.open()