Programming Department assistance guidelines
Assistance hours
Mon–Fri, 9 AM–5 PM ESTAvailable strictly by appointment.
Email response time
48 hours or lessExcludes weekends and federal holidays.
First-time setup
Coordinated via SalesAll initial appointments are set by Sales.
Direct system connectivity
Our API lets your developers connect your system with ours for flexible direct payment processing. Just follow our verification and processing guidelines and comply with our Terms of Service. For help, contact Customer Service or your Sales Representative, we are happy to explain how this can boost your bottom line.
Want a simpler option?
Use our Payment Buttons or Email Invoicing for immediate deployment without coding.
- Payment Buttons
- Email Invoicing
API specifications & SDK
Official documentation.
Access official documentation, technical parameter references, webhooks, and client libraries to integrate payment processing directly into your commercial software.
Payment API Document
Core integration specification for developer transaction initiation, account parameter verification, and automated payment submission.
View API DocumentNotification API Document
Webhook specification for real-time transaction event callbacks, payment status updates, deposit confirmations, and automated notifications.
View Notification DocReport API Document
Detailed technical reference for automated ledger reconciliation, transaction search endpoints, return tracking, and settlement reporting.
View Report DocGreen PHP SDK
Official open-source PHP software development kit hosted on GitHub, featuring pre-built client wrappers, helpers, and sample implementations.
GitHub Repository
Need developer credentials? Open your merchant account to receive live API keys.
Engineering support protocol
Do we help you integrate?
We provide structured engineering assistance to ensure your technical integration succeeds while maintaining rigorous security and operational standards.
Programmer Review
If you already have a programmer that can assist you, have them take a look at our API Documentation. If the developer has questions about anything in the documentation, they can reach out to our Sales Department.
Technical Team Appointments
Sales will set an appointment to speak with a Programmer on our technical team. Our tech team will not discuss API integration with non-technical individuals. That is handled by customer service or sales.
Consulting Requirement
If you do not already have a developer, and you do not have programming experience, you will need to consult with one before moving forward with plans to use our API.
SOAP • GreenPay™ Bank Login • Direct Bank Rails
Green.Money™ API interactive reference.
Endpoints and live specifications. Pick a topic to read its fields, XML samples, and code examples.
Introduction
Welcome to the Green API Documentation for integrating ValidiFi's bank login into your business solution! Our APIs lay the foundation for securely and seamlessly connecting with users' bank accounts. Dive into our documentation to unlock powerful tools designed to streamline user authentication, facilitate easy access to financial data, and enhance your application's functionality. With our comprehensive guides and robust API suite, integrating ValidiFi's bank login capabilities into your platform will provide users with a frictionless banking experience.
Customers
The Customers endpoint streamlines the checkout process by allowing you to securely store customer information. Each customer can be assigned a username and password, which are encrypted and securely stored in our system for swift account retrieval. Additionally, this endpoint offers diverse debit creation methods tailored to your specific processing requirements. In Green, customers are uniquely identified by the Payor_ID field.
Getting Started
We leverage the SOAP (Simple Object Access Protocol) API protocol to ensure seamless communication among systems and secure data exchange. SOAP employs XML-based messaging for data transmission across various transport protocols, enhancing interoperability among systems and programming languages. A SOAP message includes an envelope that outlines the message's structure, headers, and a body containing the actual data. This approach allows developers to create robust, standardized web services that support integration across diverse platforms and technologies while maintaining strict security measures.
Authentication
Our endpoints require authentication using a client ID and password. Every endpoint requires the Client_ID and ApiPassword parameters. To retrieve your API credentials, log into your merchant account.

To access your account settings, please navigate to the "Account" section in the navigation menu, as illustrated in the accompanying image. Within the account settings, you will find two types of credentials: Live Credentials and Test Credentials. Live Credentials are used for making actual API requests, while Test Credentials are designed to simulate API requests for testing purposes. To acquire Live Credentials, simply add a key to the Live Credentials section. Upon successful addition, you will be notified both on the page and via email, the latter containing your API credentials. Be sure to record your Merchant ID (MID), which can be found at the top-left corner of the page, along with your API password.
If you encounter any difficulty finding the API settings on your screen, please don't hesitate to contact our support team for assistance.
GreenPay™ Integration
This section outlines the steps required to seamlessly integrate the GreenPay™ bank login feature into your platform.
Integration Workflow
For Existing Customers:
If you already have the customer's Payor_ID, initiate an API call using the GetCustomerInformation endpoint to access the customer's bank account information, if they have previously registered one. For implementing a customer login system to retrieve the Payor_ID, you will need to save a username and password to your customer either using CreateCustomerWithLogin to create the customer with username and password or EditCustomerLogin to apply a username and password to an existing customer, and then authenticate these credentials using the CustomerAuth endpoint. We recommend displaying the RoutingNumber and AccountNumber returned from GetCustomerInformation, which are already obfuscated for security purposes, in order for your customer to confirm the bank account being used for the transaction.
Payor_ID in your system.The GetCustomerInformation endpoint provides access to the customer's bank account information if they have previously registered one. In cases where the customer doesn't have a bank account on file, incorporate the provided iframe link along with the supporting code snippet provided from the Client Side Integration section. Upon confirming the customer's bank account registration, proceed to call one of the following endpoints to finalize the transaction: CustomerOneTimeDraftBV, CustomerOneTimeDraftRTV, CustomerRecurringDraftBV, or CustomerRecurringDraftRTV
For New Customers:
To create a new customer, initiate an API call using the CreateCustomer or CreateCustomerWithLogin endpoint depending on whether you're implementing a login system. For implementing a customer login system to retrieve the Payor_ID, you will need to save a username and password to your customer using CreateCustomerWithLogin to create the customer with username and password, and then authenticate these credentials using the CustomerAuth endpoint.
Payor_ID in your system.Upon successful customer creation, you will receive a Payor_ID. Store this value as the subsequent API calls rely on the Payor_ID. Include the provided iframe link from the Client Side Integration section along with the supporting code snippet. After confirming the customer's bank account registration, we recommend displaying the RoutingNumber and AccountNumber returned from GetCustomerInformation, which are already obfuscated for security purposes, in order for your customer to confirm the bank account being used for the transaction. Proceed to call one of the following endpoints to complete the transaction: CustomerOneTimeDraftBV, CustomerOneTimeDraftRTV, CustomerRecurringDraftBV, or CustomerRecurringDraftRTV.
Client Side Integration
The ValidiFi integration is delivered to your page through an iframe link, ensuring a smooth integration process with your site's existing layout and functionality. Replace placeholders with your MID for the client_id parameter and the Payor_ID for the customer_id parameter.
The final step is to insert the following code snippet and implementing the necessary logic to intercept events triggered by the integration. The following code snippet listens for the iframe events so that you can code the succeeding logic after each event.
Customers
The following SOAP calls can be used to interact with Customers.
GetCustomerInformation
This function retrieves a single customer record identified by the Payor_ID.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| Payor_ID | Required | The customer ID |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
CreateCustomer
Store a customer's information in our system as part of your Customer List.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| NickName | Optional | An easy to remember name for your customer |
| NameFirst | Required | The customer's first name |
| NameLast | Required | The customer's last name |
| PhoneWork | Optional | The customer's phone number |
| PhoneWorkExtension | Optional | The phone number's country extension |
| EmailAddress | Optional | The customer's email address |
| BankAccountCompanyName | Optional | The full name on the customer's bank account |
| BankAccountAddress1 | Optional | The street address listed on the customer's bank account |
| BankAccountAddress2 | Optional | The Apt/Suite listed on the customer's bank account |
| BankAccountCity | Optional | The city of the address listed on the customer's bank account |
| BankAccountState | Optional | The state of the address listed on the customer's bank account |
| BankAccountZip | Optional | The zip code of the address listed on the customer's bank account |
| BankAccountCountry | Optional | The country of the address listed on the customer's bank account |
| RoutingNumber | Optional | The routing number of the address listed on the customer's bank account |
| AccountNumber | Optional | The account number of the address listed on the customer's bank account |
| Note | Optional | Additional description/information of the customer |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
CreateCustomerWithLogin
Store a customer's information in our system as part of your Customer List, also with a username and password.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| NickName | Optional | An easy to remember name for your customer |
| NameFirst | Required | The customer's first name |
| NameLast | Required | The customer's last name |
| PhoneWork | Optional | The customer's phone number |
| PhoneWorkExtension | Optional | The phone number's country extension |
| EmailAddress | Optional | The customer's email address |
| BankAccountCompanyName | Optional | The full name on the customer's bank account |
| BankAccountAddress1 | Optional | The street address listed on the customer's bank account |
| BankAccountAddress2 | Optional | The Apt/Suite listed on the customer's bank account |
| BankAccountCity | Optional | The city of the address listed on the customer's bank account |
| BankAccountState | Optional | The state of the address listed on the customer's bank account |
| BankAccountZip | Optional | The zip code of the address listed on the customer's bank account |
| BankAccountCountry | Optional | The country of the address listed on the customer's bank account |
| RoutingNumber | Optional | The routing number of the address listed on the customer's bank account |
| AccountNumber | Optional | The account number of the address listed on the customer's bank account |
| Note | Optional | Additional description/information of the customer |
| UserName | Required | The customer's account username |
| Password | Required | The customer's account password |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
CustomerAuth
Authenticate the Customer List Entry's Username and Password.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| UserName | Required | The customer's username |
| Password | Required | The customer's password |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
EditCustomerLogin
Edit a Customer list entry's password.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| Payor_ID | Required | The customer ID |
| OldPassword | Required | The customer's current password |
| NewPassword | Required | The customer's new password |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
CustomerOneTimeDraftRTV
Run a single draft from a customer into your merchant account using Real-Time Verification.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| Payor_ID | Required | The customer ID |
| CheckMemo | Optional | Description of the debit |
| CheckAmount | Required | The debit amount |
| CheckDate | Required | The debit date |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
CustomerOneTimeDraftBV
Run a single draft from a customer into your merchant account using delayed Batch Verification.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| Payor_ID | Required | The customer ID |
| CheckMemo | Optional | Description of the debit |
| CheckAmount | Required | The debit amount |
| CheckDate | Required | The debit date |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Response
Code Example - cURL
Code Example - Javascript
CustomerRecurringDraftRTV
Start a recurring draft series from a customer into your merchant account using Real-Time Verification.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| Payor_ID | Required | The customer ID |
| CheckMemo | Optional | Description of the debit |
| CheckAmount | Required | The debit amount |
| CheckDate | Required | The debit date |
| RecurringType | Required | Set value as M for monthly, W for weekly, D for daily, B for Bank days Mon-Fri, F for Mon-Fri |
| RecurringOffset | Required | Number of days to offset the next debit creation |
| RecurringPayments | Required | The number of payments for this series |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |
XML Request
XML Request
Code Example - cURL
Code Example - Javascript
CustomerRecurringDraftBV
Start a recurring draft series from a customer into your merchant account using delayed Batch Verification.
Request
| Field Name | Required/Optional | Description |
|---|---|---|
| Client_ID | Required | Your merchant ID |
| ApiPassword | Required | Your API password |
| Payor_ID | Required | The customer ID |
| CheckMemo | Optional | Description of the debit |
| CheckAmount | Required | The debit amount |
| CheckDate | Required | The debit date |
| RecurringType | Required | Set value as M for monthly, W for weekly, D for daily, B for Bank days Mon-Fri, F for Mon-Fri |
| RecurringOffset | Required | Number of days to offset the next debit creation |
| RecurringPayments | Required | The number of payments for this series |
| x_delim_data | Optional | If set to "true", formats the output data using the x_delim_char |
| x_delim_char | Optional | Formats the output data using the character supplied |