All pages
Powered by GitBook
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

Developer Quickstart

Partnership isn’t just a word—it’s how we power payments.

Integrating payment services into your system is a complex task, and it grows all the more complex the more ideas and customization needs you have. We want to make that process as easy to follow as possible—from one developer to another.

See our Vocabulary to help you get started if you are new to payment services.

We've prepared this quickstart section to help you get started. We recommend going through all of the sections in order and then moving onto the Getting Started section to find out which integration option makes the most sense for you and how to implement it in your system.

Now, if you are ready to explore...

Authentication

Authentication

A quickstart guide to authenticating with Number services

Basics

To authenticate to our services, depending on your integration of choice, you might need the following:

1

An account code and token

Using your unique key representing the Number account and the token generated from the Client Admin Portal, you'll be able to authenticate to the REST API.

2

API key

When initializing either of the mobile SDKs, you'll need an API key provided by Number.

3

HMAC secret

If you are PCI Compliant and want to use our REST API to collect cardholder data, some endpoints will require you to append additional data to the session header. You'll be able to generate this header using an HMAC secret provided by us.

4

Username and password

When logging into the Virtual Terminal you'll need a username and password. When logging into the Client Admin Portal this will also require two-factor authentication using a text message to your mobile phone.


REST API

Here's a basic step-by-step guide on how to authenticate with our APIs:

1

Find your account code

This will be provided by Number when you create an account with us.

2

If you want to read more about authentication, see the guide


Android and iOS SDK

Authenticating with the mobile SDKs is very simple. to get an API key, HMAC secret, and an optional Sentry DSN.

After installing the SDK of your choice, you can configure and initialize the EasyPay class.

Android

iOS


Virtual Terminal

To log in and use the features of Virtual Terminal, you'll first need to create accounts for your users through the Client Admin Portal.

To access the portal, . You will be asked to provide the full name, e-mail address, and cell phone number for every individual you wish to have access to the portal. Those individuals will then be able to enter the portal and create new Virtual Terminal users through the portal by entering Manage Accounts > Users through the navigation on the left.

Now, those users will be able to access the Virtual Terminal using the link below.

Create a new token

Use the Client Admin Portal to create a token. If you don't have access to the Client Admin Portal, contact the Number support team.

3

Send a request to authenticate and store the session key

You'll need to provide your account code as AcctCode and token as Token.

REST API:

Handle the response and store the SessKey value.

4

Include the session key in your requests

If you don't encounter a PCI Level 1 compliance warning in API reference page:

For REST API, include a SessKey header with the stored value.

In case you encounter the compliance warning in API reference page, as seen below:

You'll need to prepare a secured header and use its value in place of the original SessKey.

If the HMAC secret was not provided to you previously or you don't know how to find the value of UserID or DeviceID, .

The format for the key is as follows: SessKey_Epoch_DeviceID_Hash. Include this key in the same way as you would include the SessKey (see case above).

Authentication
Contact Number
Contact Number
contact Number

Card Sales and Consent

Learn to make credit card sales and collect consent with Number

Card present sales and consent

To make sales or collect consent when a card is present using Number, you have several options:

1

Integration with a Verifone card reader

You can use Verifone card readers. They are secure devices that connect to your computer via USB. They encrypt cardholder data during transmission to ensure security.

2

USB card reader through the Virtual Terminal or our desktop app

When you have a USB card reader connected to your machine, you can log into the Virtual Terminal to make card present sales and to collect consent.

We also have a custom desktop application which can be convenient in an office setting to collect card present payments. It offers similar functionality to the Virtual Terminal.

3

Custom integration with our REST API

Our REST API offers methods for handling card present transactions.

If you have your own PCI level one compliance program, you may write your own custom code calling our APIs to collect card present payments and consent. You can read more about PCI compliance in the short section of our guide.

Verifone integration

There are a few approaches to integration, You can either use the browser-based interface option or the Desktop integration with SDK .

For an in-depth tutorial on how to integrate and use your Verifone card reader with Number, see our integration guide.

Before you start, you'll need to download the Verifone Windows service to your machine, connect your card reader device to a free USB port, allow it to initialize, extract the archive with the service and run the EXE as an administrator. After the installation is complete, reboot the system.

You can issue commands to the service by calling https://localhost:8031 from your website.

Verifone card present sales

Here's an simplified example of how you can invoke the service for a card present sale:

Verifone card present annual consent

Here's an simplified example of how you can invoke the service to collect annual consent:

Virtual Terminal or desktop application

When you want to use your Verifone with the Virtual Terminal, you have to first install the very same Windows service that is used when doing a Verifone browser-based integration. After installation, to get the card reader features activated.

To learn more about using the Virtual Terminal, see the user guide.

Read more about using our custom desktop application for sales in the guide or to get access.

Virtual Terminal card present sales

When you visit the Virtual Terminal, log in and expand Credit Cards in the navigation on the left. You'll see options for a sale, an EMV sale, authorization, forced auth, and adjustments.

As long as your USB card reader is connected to your machine, it will seamlessly integrate with the Virtual Terminal for card present transactions.

Virtual Terminal card present consent

When you visit the Virtual Terminal, log in and expand Consents in the navigation on the left. You'll see options for annual consent, EMV annual consent, and one-time consent. You can also expand the Recurring tab to find options to create recurring consent, EMV recurring consent, and subscription consent.

As long as your USB card reader is connected to your machine, it will seamlessly integrate with the Virtual Terminal for card present transactions.

REST API integration

Our APIs are useful for any Integration as you can apply a credit, void, query, charge a stored card etc. For integrators who are PCI Level one compliant you may also pass cardholder data directly through the API. Most integrations will use our PayForms to collect Cardholder data while the API will be used for all remaining activity.

To learn more about our APIs, see the integration guide.

When you scan the credit card and collect the track data alongside the other payment details, if using the REST API, prepare the HMAC secured header like shown in quickstart guide, and encrypt the card number using our RSA certificate.

Follow the instructions in the API reference to prepare and handle the request.

API card present sales

You can use the following API operations:

  • For the REST API, use

API card present consent

You can use the following API operations:

  • For the REST API, you can use and .


Manual card sales and consent

To make credit card sales and collect consent using Number when you want to enter the card details manually, you have the following options:

1

PayForm widget

You can configure and customize our PayForm widget and redirect your users to a separate page with the form or embed it as an IFrame in your existing web application.

2

PayForm widget

The PayForm is designed to be a highly flexible and secure payment form for your users. To start collecting payments and consent with the PayForm, you'll want to use our builder tool for configuration, then our REST API to generate a payment URL.

Learn more about how to configure and use the PayForm in the guide.

You can read about configuration specifics in the section of our full PayForm guide. For the purpose of this tutorial, you can follow the example below; we'll briefly explain each configuration step.

PayForm manual card sale

In the example below, the PayForm has been setup for an instant card payment.

1

Visible and read-only fields

The cardholder will need to provide their first and last names, full address, email, and click a checkbox to agree to pay and give their permissions to receive an email.

Additionally, they'll see the amount field, but it'll be read-only.

2

The JSON will look like the following:

This JSON can be used to make a REST API request to generate the actual payment form.

You may re-use this JSON to generate the same type of form for multiple different users. You may also want to dynamically configure values like the amounts from your code.

To generate a PayForm, make a request to .

If you include a valid session key, the PayForm will be accessible under the PaymentUrl included in the response. You can embed it into your site or redirect the user to the page.

Once the user fills out and submits the form, we'll handle the payment.

If you want to handle the query string when redirecting back to your website to store the transaction ID in your database, read the section of our full PayForm guide.

PayForm manual consent

To use the PayForm to save a card on file, follow the steps in , change the transaction type to collecting cardholder data, and skip the amount field.

You may also collect an instant payment and consent at the same time by choosing the combo widget as your transaction type.

Virtual Terminal or desktop application

The Virtual Terminal is a web application that allows you to manually enter credit card details and process transactions through your browser.

To learn more about using the Virtual Terminal, see the user guide.

Read more about using our custom desktop application for sales in the guide or to get access.

Virtual Terminal manual card sale

When you visit the Virtual Terminal, log in and expand Credit Cards in the navigation on the left. You'll see options for a sale, an EMV sale, authorization, forced auth, and adjustments. Follow the instructions and manually enter the cardholder details to make a sale.

Virtual Terminal manual consent

Using the Virtual Terminal, you can create annual, one-time, recurring, and subscription consents. Log in and expand Consents and Recurring tabs on the left side of the screen. Choose the type of consent you're interested in and follow the instructions to manually enter the cardholder details and store a card on file.

Android / iOS SDK integration

If you are developing an Android or iOS application, you can utilize our SDKs to charge credit cards and collect consent manually by having users enter their own details.

We recommend following the and guides to learn how to integrate Number with your mobile applications.

Mobile manual card sale

The relevant methods are described in section of the guide and section of the guide.

Mobile manual consent annual

The relevant methods are described in section of the guide and section of the guide.

REST API integration

If you wish to have more control over the integration and you are PCI Level 1 compliant, you can try using our APIs. They provide methods for all payment types available using our other services, including manual card sales and collecting different types of consent.

To learn more about our APIs, see the integration guide.

After authenticating, when you collect cardholder data alongside the other payment details, if using the REST API, prepare the HMAC secured header like shown in quickstart guide, and encrypt the card number using our RSA certificate. Follow the instructions in the API reference to prepare and handle the request.

Manual card sale

You can use the following API operations:

  • For the REST API, use .

Manual consent

You can use the following API operations:

  • For the REST API, use for annual consent and for recurring consent.

Virtual Terminal or our desktop application

The Virtual Terminal website allows you to handle manual card sales and consent collection by default. This approach requires no coding and is perfect for a physical point-of-sale.

We also have a custom desktop application which can be convenient way to collect manual card payments and consent. It offers much of the same functionality as the Virtual Terminal.

3

Android or iOS SDK integration

If you have a mobile application that needs to handle payments and consent, our SDKs implement secure forms which can collect cardholder information from your users.

4

REST API integration

For more customization, you can call our API for sales and consent.

If you have your own PCI level one compliance program, you may write your own custom code calling our API to collect manual card payments and consent. You can read more about PCI compliance in the short section of our integration guide.

Submission options

The PayForm will redirect the user to an external URL. An encrypted query string containing the POST data will also be appended to the URL

3

Styling and colors

The styling and colors were left as default, only switching out the button background and border to different shades of green.

4

Pre-filled values

The amount will be pre-filled as $25, the redirect URL is using an example URL to your website, and the EIndex is using the sandbox value for encryption key. Endpoint value should always be left as default.

Integration Options
Verifone
contact the Number support team
Virtual Terminal
Integration Options
contact Number
REST API
Authentication
PayForm
Virtual Terminal
Integration Options
contact Number
Android SDK
iOS SDK
Android SDK
iOS SDK
Android SDK
iOS SDK
REST API
Authentication
PayForm manual card sale
PayForm JSON example
{
  "InitParams": {
    "MerchID": 1,
    "WTYPE": "PF",
    "PostURL": "",
    "RedirectURL": "https://yourwebsite.com/success",
    "REF_ID": "",
    "RPGUID": "",
    "EndPoint": "PayForm/PF.aspx",
    "EINDEX": "300",
    "Amounts": {
      "Amount": 25,
      "Surcharge": 0,
      "TotalAmt": 25
    },
    "Payer": {
      "Firstname": "",
      "Lastname": "",
      "BillingAddress": {
        "StreetAddress": "",
        "City": "",
        "State": "",
        "ZIP": "",
        "Country": ""
      },
      "Email": "",
      "Phone": ""
    },
    "WidOptions": {
      "eVisible": "6E7F",
      "eReadOnly": "0040",
      "eStyles": "0001",
      "eSubmission": "0201",
      "eColors": "#ffffff,#6cca44,#59ff00,#212121,#ffffff,#212121,#ffffff"
    }
  }
}
Authentication Old

Querying and Filtering

Find the information you need through the API or Virtual Terminal

If you need to find a specific record in our database (such as a transaction or saved consent) or you need to find all records matching your criteria, you can either query our APIs programatically or use the Virtual Terminal to view and filter the records from its user interface.

REST API

To query records, you'll need to find a relevant method in the REST API reference.

When querying, you'll need to prepare the Query string. It should consist of variables that correspond to fields on the records and logical terms built using those variables.

All Query string variable options are fully described in the API reference under specific API methods and in the reference. You can use the variables to build logical terms, and you can build and join logical terms using "&&" for a logical AND or "||" for a logical OR.

Read about Number's query language in our reference.

Depending on the type of record you're querying (transaction, consent, ...), the variables you can use inside of a Query string will differ. The formatting rules do not change.

Example

As an example, if want to find settled ACH transactions made in January 2025 made using Verifone card readers, you can call or depending on which API you are using.

You can check the description of the Query string parameter or check the reference for section to find out that variable 'B' corresponds to transaction status, variable 'C' corresponds to date created, and 'U' corresponds to the transaction origin.

Each variable which requires an enum includes a description of valid values. Settled transactions have a transaction status of '2', and Verifone transactions have an origin of 'SDK'. To format the date correctly, follow the examples given for the variable.

You can combine the filters to build your Query string like so:


Virtual Terminal

You can filter consents, transactions, and other records through the Virtual Terminal user interface.

To log into the Virtual Terminal, you need to have a user account created through the Client Admin Portal as described in the quickstart guide.

Once you're logged in, see the navigation on the left and click on Scheduled to view scheduled payments, click on Settlement to view settlements, or expand Reports to find other reports. There, you'll be able to search and filter records using the user interface.

You can read more about using the Virtual Terminal in the guide.

Process a Card Sale Old
Process a Card Sale Old
Querying
Querying
Querying
Authentication
Virtual Terminal
Virtual Terminal navigation
Consent list and filters
Transaction list and filters
(B=2)&&(C>='1/1/2025')&&(C<='1/31/2025')&&(U='SDK')

Payment Reminders

Send payment reminders to clients through text or e-mail

As an integrator, you may wish to send a payment reminder to a client through a text or e-mail which will allow them to pay the amount due. Here's an example reminder:

You have a payment due to Merchant XYZ of $125.00 due on 10/4/2016. Please follow the link below to make the payment. https://easypay5.com/stdwidget/?SP=E8E5EC

Once they receive the reminder, they can click the link that is sent along with the message to open a payment page. This will allow them to enter their card details and make a payment.

After the payment is submitted, a transaction receipt would be sent to the e-mail address on file.

Implementation

To send a payment reminder using the REST API, use the endpoint.

Request

Both implementations use a similar body structure, and the fields are described below.

Field name
Description

Response

If you didn't catch any exceptions and your response is not null, check the value of FunctionOK. If FunctionOk is false, it indicates an error that was handled on the Number servers. You can find more details by looking at ErrMsg and ErrCode included in the response.

You don't have to do anything else, the reminder was sent successfully. A friendly response message is included in RespMsg field, and the PaymentURL is also returned if you wish to store it.

Amount

The $ amount to collect.

ConsentID

Not used, please fill with 0.

DueOn

The payment due date in mm/dd/yyyy or yyyy/mm/dd format to display to the customer.

EINDEX

This is your unique Integrator Key Index for encryption. It should be provided by Number when you make an account with us, otherwise .

MerchID

The unique identifier for the Merchant record.

TXID

Not used, please fill with 0.

WType

This specifies which payment widget to display, including custom widgets built for your company.

RedirectURL

This specifies where to redirect the user and post the results of the transaction.

WidgetURL

The endpoint for the widget payment form, including custom forms. and we will provide you with a value. You can start with

ExpiresOn

A date in yyyy-mm-dd format for when the payment link should no longer be available.

SingleUse

Indicates whether the payment link should only accept a single payment.

OptParams

Parameters which control the design and behavior of the payment form including the visible fields, read-only fields, color and styling, and submission options. See the section in the guide to learn how you can generate those parameters.

Person

The name, address, email, and phone number for the payee.

MessageType

The type of message for the payee.

  • EMAIL: Send an email with a link to the payment form

  • URLONLY: Only return a URL to the payment form in the response

  • TEXT: Send a text message with a link to the payment form

RefID

A custom user-defined field to save with the transaction.

RPGUID

Another custom user-defined field to save with the transaction.

MessageBody

The message to send. Use **Merch1** to insert merchant's name into your message template. If the body is left empty, a default generic message will be used:

You have a Payment Due to [Merchant Name] of [Amount] due on [DueOn]. Please follow the link below to make the Payment. [Link Here]

AcctHolderID

Not used, please fill with 0.

contact Number customer support
Contact Number for more information.
Contact Number
https://easypay5.com/stdwidget/
PayForm
PCI Compliance
PCI Compliance
Create Recurring Consent
Create Recurring Consent
Create Annual Consent
Create Annual Consent
ACH
Text to Pay Old
PayForm Old
Transaction query
1. Charge credit card
3. Create annual consent
PayForm builder
PayForm builder
Redirect with query string
1. Charge credit card
3. Create annual consent
ACH Transaction Query