The value.io kernel provides RESTful JSON API access to the following resources:
Response | Definition |
---|---|
HTTP 200 | OK |
HTTP 202 | Accepted for processing |
HTTP 401 | Unauthorized returned by the api for authentication and authorization errors. |
HTTP 404 | Not Found returned if a page or a resource could not be found. |
HTTP 422 | Unprocessable Entity returned for errors during record save. |
HTTP 500 | Error |
An easy way to observe the value.io kernel in action is by trying the secure value.js payment form:
Configure the endpoint_uri parameter with the uri of your backend processor. The following values may be used for testing which will return the passed pass_through_payload uninterpolated:
test_uncertified_backend,
test_certified_backend_success,
test_certified_backend_failure,
Configure the options parameter with:
http_method(optional): HTTP verb for your HTTP based payment service. Defaults to POST which is currently the only method supported
content_type(optional): The value for the HTTP 'Content-Type' header. Defaults to application/json
basic_auth_username(optional): If provided will be used in HTTP Basic Authentication header
basic_auth_password(optional): If provided will be used in HTTP Basic Authentication header
basic_auth_token(optional): If provided will be used in HTTP Basic Authentication header
ssl_verify(optional): Can be provided with a value of 'none' if value.io environment is not production.
access_token(optional): Adds 'AccessToken' HTTP header.
universal_auth(optional): Adds more flexibility in specifying Authentication HTTP header.
location_token(optional): Adds 'LocationToken' HTTP header.
soap_action(optional): Adds 'SOAPAction' HTTP header.
content_length(optional): Adds and calculates 'Content-Length' HTTP header for interpolated message body if 'true'.
In posts to payments using this destination include a pass_through_payload string
include the following tokens:
$credit_card.number$,
$credit_card.month$, (m)
$credit_card.year$, (yyyy)
$credit_card.month.mm$, (mm)
$credit_card.year.yy$, (yy)
$credit_card.cvv$,
$credit_card.first_name$,
$credit_card.last_name$,
$credit_card.email$,
$credit_card.address1$,
$credit_card.address2$,
$credit_card.city$,
$credit_card.state$,
$credit_card.country$,
$credit_card.phone$,
$credit_card.zip$
Note: Because the PassThrough destination sends out sensitive data, new instances must be certified by Inspire Commerce prior to processing payments.
When sending transactions to custom end points, 'status: success', means that a payload was sent, and a response was received. It does not represent the success or failure of the actual transaction. This would need to be extracted from the response body.
endpoint_uri
options: (http_method, content_type, basic_auth_username, basic_auth_password, basic_auth_token, ssl_verify, timeout, access_token, location_token, soap_action, content_length)
In order to setup Authorize.net
* Log into your merchant area at Authorize.net.
* Click on 'Account,' from the top menu.
* Click on 'API Login ID and Transaction Key' and generate a Login ID and Transaction Key.
* Use these to connect value.io to Authorize.net.
NOTE: if you already have a shopping cart connected to Authorize.net
with a Login ID and Transaction Key, through their API... even if you do
not check the box to, 'Disable Old Transaction Key(s)' the keys may be
disabled automatically. Update all systems with your newly generated
Login ID/Transaction Key Pair. The last thing we want is for your
connecting InspirePay to crash your other shopping cart processing
systems because of Authorize.net.
api_login_id
transaction_key
Configure the Checkout.com destination by using the secret_key provided within the Checkout.com Dashboard. To find the secret key, log into The Hub. The key is stored under Channels, Website.
secret_key
my_virtual_merchant_id
my_virtual_merchant_user_id
my_virtual_merchant_pin
Requires FluidPay Secret Key
api_key
processor_id
apple_pay
Configure the Heartland destination by using the secret_api_key provided within the Heartland Payment Systemts Portico or Secure Submit Systems.
secret_api_key
While connecting with Inspire Commerce is as easy as entering your
username and password into the fields below, there is a 'proper' way to
set up the gateway for enhanced security.
* Log into Inspire Commerce, and select 'Options' from the left menu.
* Select 'User Accounts.'
* Select, 'Click Here To Add A New User Account.'
* Setup the new user information with an email account that you have access to. You will need it to set the password using a system generate email.
* Make sure to select ONLY 'API Access' from the permissions section below, and create user.
* The system will send you an email to verify ownership with a link to set your password.
* Use the username and password of this new user for proper security when setting up InspirePay.
login
password
The app_id is supplied upon gateway creation by the iVeri team. The cert_id is generated within the gateway.
app_id
cert_id
login
password
merchant_id
Configure the Mercury destination with your Mercury merchant_id and password.
Your Mercury account must be configured for MercuryPay MToken support.
merchant_id
password
While connecting with NMI is as easy as entering your
username and password into the fields below, there is a 'proper' way to
set up the gateway for enhanced security.
* Log into NMI, and select 'Options' from the left menu.
* Select 'User Accounts.'
* Select, 'Click Here To Add A New User Account.'
* Setup the new user information with an email account that you have access to. You will need it to set the password using a system generate email.
* Make sure to select ONLY 'API Access' from the permissions section below, and create user.
* The system will send you an email to verify ownership with a link to set your password.
* Use the username and password of this new user for proper security when setting up InspirePay.
login
password
Requires FluidPay Secret Key
secret_key
merchant_id
Requires the PAX terminal serial number
serial_number
username
password
Retrieve from Payeezy Global Gateway E4 inside:
"Terminal Gateway ID" and "Terminal Password."
terminal_gateway_id
terminal_password
account_num is returned during the vioinstant account creation process and is the required key for destination setup.
account_num
Requires FluidPay Secret Key
key_id
key_secret
Setting up the Sage Payments Gateway for InspirePay is easy. In your
welcome letter from Sage Payments, you will only need two pieces of
information, your Merchant ID, and your Merchant Key. Again, both
should be in your welcome email letter. If you lost it, you will
need to call Sage Gateway Support.
merchant_id_number
merchant_id_key
* Sign up at http://www.securenet.com/
secure_net_id
secure_key
* Log Into Stripe, Select 'your account > account settings' from the menu.
* Select 'API Keys,' and copy your 'Live Secret Key.'
* Paste your *secret key* into the field below.
live_secret_key
Aquire credentials to access http://www.usaepay.com/developer and request sandbox access. From the sandbox system at https://sandbox.usaepay.com/login create a source with no pin and uncheck 'test'. Configure the destination with the source key.
source_key
account_id
account_token
acceptor_id
* Utilizes Merchant API Key
merchant_api_key
Hit the api without any credentials. This is the only api endpoint which will succeed without credentials.
curl https://api.value.io/v1/ping
Hit the api with credentials. All requests must be https and provide account_name:token_uuid as http basic auth credentials to succeed.
Authorization | Basic account:token |
curl \ -i \ -u "$account:$token" \ https://api.value.io/v1/pong
Get a listing of secure document records.
Authorization | Basic account:token (requires token with admin or pci role) |
Link | The next page |
curl https://api.value.io/v1/secure_documents
Create a new secure document record.
Authorization | Basic account:token (requires token with admin or write_only role). |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/secure_documents" <<-__ {"secure_document":{"data": "{'a_secure_key': 'a_secure_value'}"}}
Get a secure document object.
Authorization | Basic account:token (requires token with admin or pci role) |
curl \ -i \ -u "$account:$token" \ https://api.value.io/v1/secure_documents/:id
Destroy a secure document record
Authorization | Basic account:token (requires token with admin role). |
Get a listing of credit card records.
Authorization | Basic account:token (requires token with admin or pci role) |
Link | The next page |
curl https://api.value.io/v1/credit_cards
Create a new credit card record.
Authorization | Basic account:token (requires token with admin or write_only role). |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/credit_cards" <<-__ {"credit_card":{"brand": "visa", "number":"4242424242424242","cvv":"123","month":4,"year":2025,"first_name":"Terry","last_name":"Doe"}} __
Get a credit card object.
Authorization | Basic account:token (requires token with admin or pci role) |
curl \ -i \ -u "$account:$token" \ https://api.value.io/v1/credit_cards/:id
Generally archives card and create new card with passed parameters. If only identifier or only cvv is passed then the card will be updated without archiving. Can also be used with provision_single_use_token: 'true' to create a new single use token without archiving/recreating or otherwise modifying.
Authorization | Basic account:token (requires token with admin or write_only role) |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X PUT \ -d@- \ "https://api.value.io/v1/credit_cards/:id" <<-__ {"credit_card":{"month":7}} __
Archive card_card record
Authorization | Basic account:token (requires token with admin role). |
Get a list of configured destinations for the authenticated account
Authorization | Basic account:token (requires token with admin role) |
Create a new destination for the authenticated account.
ALL METHODS ON /destinations REQUIRE A TOKEN WITH THE ADMIN ROLE.
Authorization | Basic account:token (requires token with admin role) |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/destinations" <<-__ {"destination":{"kind":"inspire","identifier":"4242","config":{"live_secret_key":"42"}}} __
Get a configured destination for the authenticated account with an identifier.
ALL METHODS ON /destinations REQUIRE A TOKEN WITH THE ADMIN ROLE
Authorization | Basic account:token (requires token with admin role) |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X GET \ "https://api.value.io/v1/destinations/:id"
Get a configured destination for the authenticated account with an identifier archive destination and create a new destination with passed parameters.
Authorization | Basic account:token (requires token with admin role) |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X PUT \ -d@- \ "https://api.value.io/v1/destinations/:id" <<-__ {"destination":{"config":{"live_secret_key":42.0}}} __
Archives a destination
Authorization | Basic account:token (requires token with admin role) |
Returns a list of payment records for the authenticated account
Authorization | Basic account:token (requires token with admin role) |
Link | The absolute url of the next page of results |
Creates a new payment record for the authenticated account
Authorization | Basic account:token (requires token with admin or write_only role) |
# Simple payment using credit card data directly. curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/payments" <<-__ {"payment":{"amount":"42.42"},"credit_card":{"brand":"visa","number":"4111111111111111","cvv":"234","month":4,"year":2025,"first_name":"Phill","last_name":"Yourbank"}} __ # Advanced payment using credit card token from /credit_cards, SecureForm, or SecureField. curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/payments" <<-__ {"payment":{"amount":"42.42","credit_card":"credit_card-identifier-or-id"}} __ #d Advanced showing addition of destination parameter. curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/payments" <<-__ {"payment":{"amount":"42.42","destination":"destination-identifier-or-id","credit_card":"credit_card-identifier-or-id"}} __
Get a payment record for the authenticated account with an identifier
Authorization | Basic account:token (requires token with admin role) |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X GET \ "https://api.value.io/v1/payments/:id"
Transact or void a previously created payment
Authorization | Basic account:token (requires token with admin or write_only role) |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X PUT \ -d@- \ "https://api.value.io/v1/payments/:id" <<-__ {"payment":{"kind":"transact"}} __
ValueIO instant merchant accounts
Authorization | Basic account:token (requires token with admin role). |
curl \ -i \ -u "$account:$token" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X POST \ -d@- \ "https://api.value.io/v1/vioinstant" <<-__ { "test": "true", "first_name": "Chris", "last_name": "Terry", "date_of_birth": "1970-1-23", "social_security_number": "555-55-5555", "phone": "555-555-5555", "currency": "USD", "business_legal_name": "Booming Biz", "doing_business_as": "", "ein": "444-44-4444", "monthly_bank_card_volume": 0, "average_ticket": 0, "highest_ticket": 0, "apartment_number": "#3W", "address1": "555 5th Street", "address2": "", "city": "Greatown", "state": "CO", "country": "USA", "zip": "55555", "bank_account_country_code": "USA", "bank_account_account_number": "55555555555", "bank_account_routing_number": "011401533", "bank_account_bank_name": "Greatown Bank" } __