PayFabric for Sage Intacct connects Sage Intacct with the payment processing services of PayFabric. This document covers how to configure and utilize the functionality available with the PayFabric for Sage Intacct Application.
Table of Contents
Introduction to PayFabric Sage Intacct
Setup a Gateway Account Profile
PayFabric for Sage Intacct Setup
PayFabric Gateway Account Profile Setup
Accounts Receivable Receive Payments
Prevent users from accessing certain PayFabric Sage Forms
Introduction to PayFabric Receivables
Working within PayFabric Receivables
Introduction to PayFabric:
PayFabric is a cloud-based payment acceptance platform and storage hub that can be integrated with any application, platform, and back office environment with ease and simplicity.
PayFabric offers real-time transaction processing for both credit card and ACH transactions while meeting the highest standards of security. PayFabric helps merchants reduce the scope of their PCI compliance by helping to remove credit card access from applications. By connecting to PayFabric, 3rd party applications are relieved of any access to sensitive credit card numbers. PayFabric can easily be integrated with applications to allow for shared management of customer’s credit card and ACH data.
Introduction to PayFabric Sage Intacct
PayFabric for Sage Intacct is an add-on service to Sage Intacct that provides businesses the tools to process payments for Sales Order, Sales Invoice and Accounts Receivable Invoice.
By leveraging the payment processing power of PayFabric, this offers real time payment processing for both credit card and ACH transactions while ensuring the highest standards of security are addressed. This document will cover how to configure and utilize PayFabric for Sage Intacct features and functionality.
Prerequisites
The following items should be obtained before starting with PayFabric for Sage Intacct.
PayFabric Organization Account
To use PayFabric for Sage Intacct, the organization must first be setup in PayFabric.
To set up an account for testing, go to https://sandbox.payfabric.com/Portal/Account/Register.
To set up a production account, contact the PayFabric partner or Sales@PayFabric.com.
To use PayFabric for Sage Intacct, it is assumed that the PayFabric account is setup for the organization and has an existing Payment Gateway Account Profile configured.
For more information on the setup and usage of PayFabric, refer to the PayFabric Portal Guide.
https://www.nodus.com/documentation/PayFabric-User-Guide.pdf
Preconditions to Install PayFabric for Sage Intacct:
- Ability to use Platform Services
- User must be a user with system administrator permissions
- Ability to install from XML (user must be a user with system administrator permissions.)
Support
For support related inquiries or for questions not found within this document, contact PayFabric Support for further assistance.
Contact Method | Address/Numbers |
support@PayFabric.com | |
Website | https://www.payfabric.com/us/support.html |
Telephone | (909) 482-4701 |
PayFabric Setup
Create a PayFabric Account
The organization must first be setup in PayFabric. If a new account is needed, go to one of the
following pages to setup an account:
Live Production Account: Contact Sales@PayFabric.com
Testing Sandbox Account: https://sandbox.payfabric.com/Portal/Account/Register
Create a Device
The following steps can be used to create a Device in PayFabric to authenticate the connection
between PayFabric and Sage Intacct.
1. Log into the desired PayFabric account
2. From the left menu, navigate to Settings > Dev Central
3. On the ‘DEV Central’ page, select the Themes tab
4. Click the ‘Create New +’ button and enter a name for the theme as ‘SageIntacct’.
5. The below is the CSS code for the SageIntacct Theme
6. Copy all the text from the note above
7. Browse back to the PayFabric page and paste the copied text into the ‘Custom.css’ field
8. The below is the JS code for the SageIntacct Theme
// JavaScript source code
var countries;
var usStates;
var caProvinces;
var auTerritories;
$(document).ready(function () {
populateVariables();
initDropdowns();
initPlaceHolder();
removeHtmlElementStyle();
customDisplayAdjustment();
if (tryGetURLParameter("readonly") == "true") {
adjustForReadonly();
}
});
function adjustForReadonly() {
$("#exptime1").attr("disabled", "disabled");
$("#exptime2").attr("disabled", "disabled");
$("#WalletCreditCard_CardHolderFirstName").attr("disabled", "disabled");
$("#WalletCreditCard_CardHolderLastName").attr("disabled", "disabled");
$("#Billto_CountryCode").attr("disabled", "disabled");
$("#Billto_AddressLine1").attr("disabled", "disabled");
$("#Billto_AddressLine2").attr("disabled", "disabled");
$("#Billto_CityCode").attr("disabled", "disabled");
$("#Billto_StateCode").attr("disabled", "disabled");
$("#Billto_ZipCode").attr("disabled", "disabled");
$("#WalletCreditCard_IsDefaultCard").attr("disabled", "disabled");
$("#WalletECheck_AccountType").attr("disabled", "disabled");
$("#WalletECheck_CardHolderFirstName").attr("disabled", "disabled");
$("#WalletECheck_CardHolderLastName").attr("disabled", "disabled");
$("#WalletECheck_IsDefaultCard").attr("disabled", "disabled");
$("#btn_Save").hide();
$("#btn_Close").hide();
$("#c_btn_Close").hide();
}
function customDisplayAdjustment() {
$(".ExpDate").text("Expiration Date");
$(".AccountNumber label").text("Account Number");
$(".ABANumber label").text("Routing Number");
$(".CustomerCSS-wallet_Echeck span").text("Default eCheck Account");
$("#payment .CardContainer .CardDate .ExpDate").text("Expiration Date");
$("#payment .CardContainer .AccountNumber label").text("Account Number");
$("#payment .CardContainer .ABANumber label").text("Routing Number");
$("#payment .CardContainer h6.CustomerCSS-wallet_Echeck span").text("Default eCheck Account");
$("#btn_Close").val("Cancel");
var cardnumber = $("#payment .CardContainer .ccinput-cardnumber");
if (cardnumber.length > 0) {
cardnumber.val(cardnumber.val().replace(/X+/g, "· · · · "));
}
var accountnumber = $("#payment .CardContainer .ccinput-accountnumber");
if (accountnumber.length > 0) {
accountnumber.val(accountnumber.val().replace(/X+/g, "· · · · "));
}
var abanumber = $("#payment .CardContainer .ccinput-abanumber");
if (abanumber.length > 0) {
abanumber.val(abanumber.val().replace(/X+/g, "· · · · "));
}
if ($("#paymentForm").length > 0) {
$(".expirationMonthDiv").prepend("Expiration Date");
$(".ExpirationYearDiv").prepend(" ");
$(".CVV2Div").prepend("CVC");
$(".billCityCodeDiv").prepend("City");
$(".billStateCodeDiv").prepend("State/Province");
$(".billZipCodeDiv").prepend("Zip/Postal Code");
// Since the Card Info input is not in a form-row as other inputs, prepending to the parent will workaround the line break issue
$(".creditcardBasicInfo").prepend("Card Number");
$(".cardHolderNameDiv").prepend("Name");
$("input").attr("placeholder", "");
$(".expirationMonth").attr("placeholder", "MM");
$(".expirationYear").attr("placeholder", "YY");
$("#paymentForm #BillCountryCode").change(function (e) {
var val = $(e.currentTarget).val();
if (val == null || val === "") {
$("#BillCountryCode").attr("is-valid", false);
} else {
$("#BillCountryCode").attr("is-valid", true);
}
});
$("#paymentForm #BillStateCode").change(function (e) {
var val = $(e.currentTarget).val();
if (val == null || val === "") {
$("#BillStateCode").attr("is-valid", false);
} else {
$("#BillStateCode").attr("is-valid", true);
}
});
}
}
function tryGetURLParameter(name) {
name = "&" + name + "=";
var nameCount = name.length;
var startIndex = window.location.href.indexOf(name);
if (startIndex == -1) {
name = "?" + name + "=";
startIndex = window.location.href.indexOf(name);
if (startIndex == -1) {
return "";
}
}
startIndex = startIndex + nameCount;
var endIndex = window.location.href.indexOf("&", startIndex);
if (endIndex == -1) {
endIndex = window.location.href.length;
}
return window.location.href.substring(startIndex, endIndex);
}
function getCountryCodeInput() {
var countryInput = $("#Billto_CountryCode");
if (countryInput.length == 0) {
countryInput = $("#NewBillAddresses_CountryCode");
}
return countryInput;
}
function getStateInput() {
var stateInput = $("#Billto_StateCode");
if (stateInput.length == 0) {
stateInput = $("#NewBillAddresses_StateCode");
}
return stateInput;
}
function populateVariables() {
countries = {
US: "United States",
AD: "Andorra",
AE: "United Arab Emirates",
AF: "Afghanistan",
AG: "Antigua And Barbuda",
AI: "Anguilla",
AL: "Albania",
AM: "Armenia",
AN: "Netherlands Antilles",
AO: "Angola",
AQ: "Antarctica",
AR: "Argentina",
AS: "American Samoa",
AT: "Austria",
AU: "Australia",
AW: "Aruba",
AX: "Aland Islands",
AZ: "Azerbaijan",
BA: "Bosnia And Herzegovina",
BB: "Barbados",
BD: "Bangladesh",
BE: "Belgium",
BF: "Burkina Faso",
BG: "Bulgaria",
BH: "Bahrain",
BI: "Burundi",
BJ: "Benin",
BL: "Saint Barthélemy",
BM: "Bermuda",
BN: "Brunei Darussalam",
BO: "Bolivia",
BR: "Brazil",
BS: "Bahamas",
BT: "Bhutan",
BV: "Bouvet Island",
BW: "Botswana",
BY: "Belarus",
BZ: "Belize",
CA: "Canada",
CC: "Cocos (Keeling) Islands",
CD: "Congo, The Democratic Republic Of The",
CF: "Central African Republic",
CG: "Congo",
CH: "Switzerland",
CI: "Côte D'Ivoire",
CK: "Cook Islands",
CL: "Chile",
CM: "Cameroon",
CN: "China",
CO: "Colombia",
CR: "Costa Rica",
CU: "Cuba",
CV: "Cape Verde",
CX: "Christmas Island",
CY: "Cyprus",
CZ: "Czech Republic",
DE: "Germany",
DJ: "Djibouti",
DK: "Denmark",
DM: "Dominica",
DO: "Dominican Republic",
DZ: "Algeria",
EC: "Ecuador",
EE: "Estonia",
EG: "Egypt",
EH: "Western Sahara",
ER: "Eritrea",
ES: "Spain",
ET: "Ethiopia",
FI: "Finland",
FJ: "Fiji",
FK: "Falkland Islands (Malvinas)",
FM: "Micronesia, Federated States Of",
FO: "Faroe Islands",
FR: "France",
GA: "Gabon",
GB: "United Kingdom",
GD: "Grenada",
GE: "Georgia",
GF: "French Guiana",
GG: "Gurnsey",
GH: "Ghana",
GI: "Gibraltar",
GL: "Greenland",
GM: "Gambia",
GN: "Guinea",
GP: "Guadeloupe",
GQ: "Equatorial Guinea",
GR: "Greece",
GS: "South Georgia And The South Sandwich Islands",
GT: "Guatemala",
GU: "Guam",
GW: "Guinea-Bissau",
GY: "Guyana",
HK: "Hong Kong",
HM: "Heard Island And Mcdonald Islands",
HN: "Honduras",
HR: "Croatia",
HT: "Haiti",
HU: "Hungary",
ID: "Indonesia",
IE: "Ireland",
IL: "Israel",
IM: "Isle Of Man",
IN: "India",
IO: "British Indian Ocean Territory",
IQ: "Iraq",
IR: "Iran, Islamic Republic Of",
IS: "Iceland",
IT: "Italy",
JE: "Jersey",
JM: "Jamaica",
JO: "Jordan",
JP: "Japan",
KE: "Kenya",
KG: "Kyrgyzstan",
KH: "Cambodia",
KI: "Kiribati",
KM: "Comoros",
KN: "Saint Kitts And Nevis",
KP: "Korea, Democratic People'S Republic Of",
KR: "Korea, Republic Of",
KW: "Kuwait",
KY: "Cayman Islands",
KZ: "Kazakhstan",
LA: "Lao People'S Democratic Republic",
LB: "Lebanon",
LC: "Saint Lucia",
LI: "Liechtenstein",
LK: "Sri Lanka",
LR: "Liberia",
LS: "Lesotho",
LT: "Lithuania",
LU: "Luxembourg",
LV: "Latvia",
LY: "Libyan Arab Jamahiriya",
MA: "Morocco",
MC: "Monaco",
MD: "Moldova, Republic Of",
ME: "Montenegro",
MF: "Saint Martin",
MG: "Madagascar",
MH: "Marshall Islands",
MK: "Macedonia, The Former Yugoslav Republic Of",
ML: "Mali",
MM: "Myanmar",
MN: "Mongolia",
MO: "Macao",
MP: "Northern Mariana Islands",
MQ: "Martinique",
MR: "Mauritania",
MS: "Montserrat",
MT: "Malta",
MU: "Mauritius",
MV: "Maldives",
MW: "Malawi",
MX: "Mexico",
MY: "Malaysia",
MZ: "Mozambique",
NA: "Namibia",
NC: "New Caledonia",
NE: "Niger",
NF: "Norfolk Island",
NG: "Nigeria",
NI: "Nicaragua",
NL: "Netherlands",
NO: "Norway",
NP: "Nepal",
NR: "Nauru",
NU: "Niue",
NZ: "New Zealand",
OM: "Oman",
PA: "Panama",
PE: "Peru",
PF: "French Polynesia",
PG: "Papua New Guinea",
PH: "Philippines",
PK: "Pakistan",
PL: "Poland",
PM: "Saint Pierre And Miquelon",
PN: "Pitcairn",
PR: "Puerto Rico",
PS: "Palestinian Territory, Occupied",
PT: "Portugal",
PW: "Palau",
PY: "Paraguay",
QA: "Qatar",
RE: "Réunion",
RO: "Romania",
RS: "Serbia",
RU: "Russian Federation",
RW: "Rwanda",
SA: "Saudi Arabia",
SB: "Solomon Islands",
SC: "Seychelles",
SD: "Sudan",
SE: "Sweden",
SG: "Singapore",
SH: "Saint Helena",
SI: "Slovenia",
SJ: "Svalbard And Jan Mayen",
SK: "Slovakia",
SL: "Sierra Leone",
SM: "San Marino",
SN: "Senegal",
ST: "Sao Tome And Principe",
SV: "El Salvador",
SY: "Syrian Arab Republic",
SZ: "Swaziland",
TC: "Turks And Caicos Islands",
TD: "Chad",
TF: "French Southern Territories",
TG: "Togo",
TH: "Thailand",
TJ: "Tajikistan",
TK: "Tokelau",
TL: "Timor-Leste",
TM: "Turkmenistan",
TN: "Tunisia",
TO: "Tonga",
TR: "Turkey",
TT: "Trinidad And Tobago",
TV: "Tuvalu",
TW: "Taiwan, Province Of China",
TZ: "Tanzania, United Republic Of",
UA: "Ukraine",
UG: "Uganda",
UM: "United States Minor Outlying Islands",
UY: "Uruguay",
UZ: "Uzbekistan",
VA: "Holy See (Vatican City State)",
VC: "Saint Vincent And The Grenadines",
VE: "Venezuela",
VG: "Virgin Islands, British",
VI: "Virgin Islands, U.S.",
VN: "Viet Nam",
WF: "Wallis And Futuna",
WS: "Samoa",
YE: "Yemen",
YT: "Mayotte",
ZA: "South Africa",
ZM: "Zambia",
ZW: "Zimbabwe",
};
usStates = {
"": "",
AL: "Alabama",
AK: "Alaska",
AZ: "Arizona",
AR: "Arkansas",
CA: "California",
CO: "Colorado",
CT: "Connecticut",
DE: "Delaware",
FL: "Florida",
GA: "Georgia",
HI: "Hawaii",
ID: "Idaho",
IL: "Illinois",
IN: "Indiana",
IA: "Iowa",
KS: "Kansas",
KY: "Kentucky",
LA: "Louisiana",
ME: "Maine",
MA: "Massachusetts",
MD: "Maryland",
MI: "Michigan",
MN: "Minnesota",
MS: "Mississippi",
MO: "Missouri",
MT: "Montana",
NE: "Nebraska",
NV: "Nevada",
NH: "New Hampshire",
NJ: "New Jersey",
NM: "New Mexico",
NY: "New York",
NC: "North Carolina",
ND: "North Dakota",
OH: "Ohio",
OK: "Oklahoma",
OR: "Oregon",
PA: "Pennsylvania",
RI: "Rhode Island",
SC: "South Carolina",
SD: "South Dakota",
TN: "Tennessee",
TX: "Texas",
UT: "Utah",
VT: "Vermont",
VA: "Virginia",
WA: "Washington",
DC: "Washington, D.C.",
WV: "West Virginia",
WI: "Wisconsin",
WY: "Wyoming",
};
caProvinces = {
AB: "Alberta",
BC: "British Columbia",
MB: "Manitoba",
NB: "New Brunswick",
NL: "Newfoundland and Labrador",
NT: "Northwest Territories",
NS: "Nova Scotia",
NU: "Nunavut",
ON: "Ontario",
PE: "Prince Edward Island",
QC: "Québec",
SK: "Saskatchewan",
YT: "Yukon",
};
auTerritories = {
ACT: "Australian Capital Territory",
NSW: "New South Wales",
NT: "Northern Territory",
QLD: "Queensland",
SA: "South Australia",
TAS: "Tasmania",
VIC: "Victoria",
WA: "Western Australia",
};
}
function initDropdowns() {
$(".Country").insertBefore($(".Street"));
$(".Trx_BillCountry").insertBefore($(".Trx_BillAddress"));
$("#NewBillAddresses_CountryCode").insertBefore($(".Trx_BillAddress"));
$(".Country_CreateWallet").insertBefore($(".Street_CreateWallet"));
$(".Wallet #billaddress>#Billto_CountryCode").insertBefore($(".Street_CreateWallet"));
var country = $(getCountryCodeInput()).val();
country = checkCountry(country);
$(getCountryCodeInput()).replaceWith(
$("<select />", {
id: getCountryCodeInput().attr("id"),
name: getCountryCodeInput().attr("name"),
})
);
if (country == "") {
var option = $("<option></option>").attr("value", "").text(" - select a country - ");
$(option).prop("selected", true);
$(getCountryCodeInput()).append(option);
}
$.each(countries, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (key == country) {
$(option).prop("selected", true);
}
$(getCountryCodeInput()).append(option);
});
$(getCountryCodeInput()).change(function () {
var country = $(this).val();
switchStateControl(country);
});
switchStateControl(country);
}
function switchStateControl(country) {
var state = $(getStateInput()).val();
if (country == "US") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
$.each(usStates, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (state == key) {
$(option).prop("selected", true);
}
$(getStateInput()).append(option);
});
} else if (country == "CA") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
$.each(caProvinces, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (state == key) {
$(option).prop("selected", true);
}
$(getStateInput()).append(option);
});
} else if (country == "AU") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
$.each(auTerritories, function (key, value) {
var option = $("<option></option>").attr("value", key).text(value);
if (state == key) {
$(option).prop("selected", true);
}
$(getStateInput()).append(option);
});
} else if (country == "") {
$(getStateInput()).replaceWith(
$("<select />", {
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
})
.css("width", "inherit")
.val(state)
);
} else {
$(getStateInput()).replaceWith(
$("<input />", {
type: "text",
id: getStateInput().attr("id"),
name: getStateInput().attr("name"),
}).val(state)
);
$("#Billto_StateCode").attr("placeholder", "State");
}
}
function checkCountry(country) {
if (country == undefined || country == "") {
country = "US";
} else {
var value = countries[country];
if (!value) {
// Check other potential variations of the US.
// If required add other countries
if (
country.toLowerCase() == "usa" ||
country.toLowerCase() == "u.s.a" ||
country.toLowerCase() == "u.s" ||
country.toLowerCase() == "united states" ||
country.toLowerCase() == "united states of america" ||
country.toLowerCase() == "u.s.a."
) {
country = "US";
} else {
country = "";
}
}
}
return country;
}
function removeHtmlElementStyle() {
$("#WalletCreditCard_CardNumber").attr("style", "");
$("#WalletCreditCard_CardHolderFirstName").attr("style", "");
$("#WalletCreditCard_CardHolderLastName").attr("style", "");
$(".Checkoutpage #payment .CardContainer .ccinput-cardnumber").attr("style", "");
}
function initPlaceHolder() {
$(".CardContainer .MiddleInitial").hide();
$(".ccinput-issavecard").hide();
}
9. Copy all the text from the note above
10. Browse back to the PayFabric page and paste the copied text into the ‘Custom.js’ field
11. Click the Save button to save the changes to the theme
12. After the save is complete, select the Device Management tab
13. Click the Generate button to present the fields for creating a Device
14. Populate the Device Name field with the name SageIntacct
15. Populate the Password and the Confirm Password fields with a secure password. Please take note of this password as it will be used again shortly.
16. Click the Confirm button to generate the device
17. Take note of the Device ID as it will be used shortly.
18. In the Device List, click the Shirt icon in the Default Theme column for the newly created device
19. Select the Theme name for the Theme that was created in the previous steps
20. Click the Confirm button to save changes.
Setup a Gateway Account Profile
In order to process transactions, a Gateway Account Profile should be setup in the PayFabric
account. The page for setting up a Gateway Account Profile can be found in the menu under
Settings > Gateway Account Profiles.
For more information on setup of the Gateway Account Profile and using PayFabric in general,
please see the PayFabric Portal Guide. https://www.nodus.com/documentation/PayFabric-User-Guide.pdf
PayFabric for Sage Intacct Setup
The following process will configure the connection to PayFabric within Sage Intacct.
1. Navigate to the PayFabric Setup Screen within the PayFabric Components.
2. Populate the fields based on the below table
Field | Value |
Account Type |
Account Type: Based on the PayFabric environment being used, set this value to Live or Sandbox. Note: Other is used for bespoke URL's and this would be communicated by your PayFabric Partner if needed. |
PayFabric URL |
PayFabric URL: This field will automatically be set after the account type is selected. Note: Other is used for bespoke URL's and this would be communicated by your PayFabric Partner if needed. |
PayFabric Device ID | PayFabric Device ID: Set this value to the PayFabric Device ID created for Sage Intacct during the previous Create a Device section. |
PayFabric Password | PayFabric Password: Set this value to the password associated to the PayFabric Device ID for Sage Intacct. |
3. After the settings have been configured, select the Test Connection option to verify if the information is configured correctly.
4. If the credentials are correct then a success message will be displayed at the top of the form. Otherwise, if a failure message is displayed, please re-verify your PayFabric device ID/Password.
5. Save the Setup configuration.
PayFabric Gateway Account Profile Setup
The PayFabric Setup page displays the available PayFabric Gateway Account Profiles that are connected to electronic payment processing accounts inside Sage Intacct.
1. Navigate to the PayFabric Setup Screen within the PayFabric Components.
2. On the bottom half of the screen, the PayFabric Gateway Profiles section will display. (Undernthe PayFabric Setup section.
3. Select the 'Import PayFabric Gateways' Button. This action will import all gateways created in PayFabric into Intacct.
4. After the Gateways are imported, click edit and populate the fields based on the below table.
Field | Value |
Name |
Description for your PayFabric Gateway. Tip: use a descriptive name to easily understand what gateway you will be processing with. |
Account Type |
Account Type: Ability to select either Bank or Undeposited Funds account to records payments against. If Bank is selected, will have to next select the bank account (Per field below) If Undeposited Funds account selected, will have to select the Gl account and Currency (Per Fields below) |
Bank Account |
Ability to select which Bank Account to tie to the Gateway |
GL Account | Ability to select which GL Account to tie to the Gateway |
Currency | If Undeposited funds account is selected, you will need to set the currency that this gateway will process in. |
Description | Description of the gateway set up |
5. Save changes.
PayFabric Wallet
The PayFabric Wallet page will allow users to securely view or add payment methods that are associated to an Intacct customer.
Navigate to the PayFabric Wallet screen through the PayFabric component.Once on the PayFabric Wallet page, select a customer. This will load any existing payment methods belonging to the customer.
The following actions can be done on the PayFabric Wallet page.
Add a new payment method
- Select a customer if not already selected
- Click 'Add Credit Card' or 'Add ACH'
- On our secure form, the user can input the credit card or ACH details
- Click Save
Set a default payment method
- Select a customer if not already selected
- In the wallet grid, look for the default column
- Click the toggle to set a payment method as the default
Note: Only a single Credit Card and ACH can be set as the default method
Edit an existing payment method
- Select a customer that has existing payment methods if not already selected
- In the wallet grid, click the Edit button under the Actions column
- On our secure form, the user can update any information pertaining to the selected payment method. Eg. updating the billing address or expiration date.
- Click Save
View an existing payment method
- Select a customer that has existing payment methods if not already selected
- In the wallet grid, click the View button under the Actions column
- On our secure form, the user can view information pertaining to the selected payment method.
Delete an existing payment method
- Select a customer that has existing payment methods if not already selected
- In the wallet grid, select one or multiple payment methods that require deletion
- Click the Delete button
PayFabric Transactions
The PayFabric Transactions page will allow users to view all PayFabric Transactions which have been processed within Intacct. To access this page, navigate to Transactions found under the PayFabric component.
When the page has loaded, the user will be able to view all transactions which have been processed within Intacct. This view will allow the user to see the details such as last 4 digits of the card, amount, and the gateway used to process.
View a Transaction
Clicking the view button on a row in the main transaction list will allow the user to view details for a specific transaction. These details include information regarding the transaction, the response, and the payment details. Additionally, this will allow the user to view which Intacct document is associated to the PayFabric Transaction.
Edit a Transaction
Clicking the edit button on a row in the main transaction list will allow the user to modify the relationship between an Intacct document and a PayFabric transaction.
Processing Transactions
PayFabric Transaction Screen
The PayFabric transaction screen is where the merchant is able to process a transaction on the document that is selected.
Sage Intacct screens that support PayFabric processing include, Order Entry, Sales invoice, AR Invoice and AR receive a payment (new).
The button will be available on supported screens in the top right as seen below;
The transaction types (Authorization, Capture, Sale) will be available depending on the document type that the merchant is trying to process against (more detailed explanations in PayFabric Transactions Types section below).
The following describes which fields need to be completed to process a transaction, in the PayFabric Transaction screen.
Field | Description |
Transaction Amount |
Amount: The amount to be authorized for the transaction. This will automatically pull form the Sage document outstanding amount for Order, Shipment and Invoice Entry. For AR Receive payment new it will pull in the amount specified in the amount received field. |
Gateway |
This dropdown will be used to select a gateway that has been defined in PayFabric Gateway Setup. This could be either a Credit Card gateway or ACH gateway. |
Tender Type | Tender Type: The tender type that is associated to the Gateway as defined in the PayFabric Gateway Setup. This field is read-only. |
Use New Credit card/ACH account | Ability to use new Credit Card or ACH account, which will invoke the PayFabric hosted Payment Page when Process button is selected. |
Credit Card/ACh account | this drop down will display the list of saved Credit Cards or ACH account in the PayFabric wallet for the customer selected in the document |
Email Receipt | Email Receipt: The email to receive the email receipt for the transaction. |
Additional Email | Additional emails that the email receipt can be sent to for the transaction. Multiple emails should be separated by a comma. |
Note: The Authorization transaction type will only allow for credit card processing Gateways to be available.
PayFabric Transaction Screen Buttons:
Process:
Once a transaction has the mandatory fields completed, the transaction can be processed. This button will initiate the call to PayFabric to process the transaction detailed.
Close:
This button will close the PayFabric Transaction window without processing any payment.
Note: Processing through a new payment method on any document type will not save the card to the wallet.
Transaction Types
Authorization
An authorization will allow the user to place a temporary hold on the customer's funds. This will ensure that when it is time to capture, the funds are available. Typically, this transaction type would be used for shipping inventory. Note: This transaction type is only applicable to credit card transactions.
Capture
A capture would be used in conjunction with an authorization. This will allow the user to capture the previous hold placed from the authorization.
Sale
A sale would be a direct capture of the customer funds. The funds will be taken from the customer at the time of processing. Note: This transaction type can be done with both credit card and ACH transactions.
Note: When an authorization has a capture against it, if this is either a partial capture or for the full amount of the authorization, the authorization will be closed. If more funds need to be captured a new authorization will need to be created or a Sale transaction completed.
Email Receipts
When processing a transaction within Sage Intacct, users will have the ability to populate email addresses for an email receipt to be delivered. Note: This email receipt template must be enabled within the PayFabric portal to allow for sending. Please reference the PayFabric user guide for email template setup.
To properly send an email receipt within Intacct, ensure that the email fields are populated within the PayFabric Transaction Details window.
Note: The Email line will only accept 1 email address. If there are additional recipients, the Additional Email line can be populated with the recipients' emails which must be separated by a comma.
Amount Pane
On PayFabric supported screens when editing the document, there will be an amount pane at the bottom of the form which will display the respective authorized and captured amounts for the document.
Note: This amount pane will vary depending on if the user is viewing or editing the document.
When viewing the document, the amount pane will display detailed information regarding the transaction.
Supported Sage Screens
PayFabric will support the following Intacct screens in both new and edit document. The list of screens is as follows: O/E Sales Order, O/E Sales Invoice, and AR Invoice. Additionally, there is the option to support the Receive a Payments page if needed. On all forms, the following transaction types (Authorization, Capture, and Sale) will be available for PayFabric processing. If utilizing the Receive a Payments page, only the Sale option will be available.
Note: a payment document will automatically be created under these conditions:
- The document type is a sales invoice or AR invoice and the transaction type is a sale or capture.
- If the document is existing, the payment document will be created automatically.
- If the document is new, the payment document will be created at the time of posting.
Order Entry Sales Order
To process PayFabric transactions on a new sales order:
- Create a new sales order
- Populate the customer
- Add line item(s)
- Click the PayFabric button in the top right
- Select a transaction type
- On the PayFabric Transaction details pop up, verify the amount looks correct
- Select the proper gateway if utilizing multiple gateways
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, post the sales order
To process PayFabric transactions on an existing sales order:
- Navigate to Order Entry > Sales Order
- Locate an order that has an open balance
- Click Edit
- Click the PayFabric button in the top right
- Select a transaction type
- On the PayFabric Transaction details pop up, verify the amount looks correct
- Select the proper gateway if utilizing multiple gateways
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, the screen will return to the main sales order list.
Note: When processing payments on a sales order, the payment document will not be created at the time of processing. Once the sales order has been converted to a sales invoice, a payment document will be created at the time of conversion.
Order Entry Sales Invoice
To process PayFabric transactions on a new sales invoice:
- Create a new sales invoice
- Populate a customer
- Add line item(s)
- Click the PayFabric button in the top right
- Select a transaction type
- On the PayFabric Transaction details pop up, verify the amount looks correct
- Select the proper gateway if utilizing multiple gateways
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, post the sales invoice.
To process PayFabric transactions on an existing sales invoice:
- Navigate to Order Entry > Sales Invoice
- Locate an invoice that has an open balance
- Click Edit
- Click the PayFabric button in the top right
- Select a transaction type
- On the PayFabric Transaction details pop up, verify the amount looks correct
- Select the proper gateway if utilizing multiple gateways
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, the invoice document will be updated accordingly.
Accounts Receivable Invoice
To process PayFabric transactions on a new AR invoice:
- Create a new AR Invoice
- Populate the customer
- Add a valid GL Account in the entries section
- Click the PayFabric button in the top right
- Select a transaction type
- On the PayFabric Transaction details pop up, verify the amount looks correct
- Select the proper gateway if utilizing multiple gateways
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, post the AR Invoice.
To process PayFabric transactions on an existing AR Invoice:
- Navigate to Accounts Receivable > Invoices
- Locate an invoice that has an open balance
- Click Edit
- Click the PayFabric button in the top right
- Select a transaction type
- On the PayFabric Transaction details pop up, verify the amount looks correct
- Select the proper gateway if utilizing multiple gateways
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, the screen will return the main invoices list.
Accounts Receivable Receive Payments
Note: This feature must be manually added. This page will allow a user to process a sale and apply the payment to an invoice.
- Navigate to Accounts Receivable > Receive payments - New!
- Click the Add button
- Populate a customer
- Adjust the other fields(payment method, account, etc) as necessary
- Populate an amount
- Click show invoices
- Select the invoices as needed
- Click the PayFabric button > Sale
- On the PayFabric Transaction details pop up, verify the amount is correct
- Select the gateway if using multiple gateways.
- Select the payment method if there are existing wallets respective to the gateway. Otherwise, new wallet will be defaulted.
- Click process. If an existing wallet was used, the transaction result will be displayed. Otherwise, the PayFabric hosted payment page will open if using a new wallet.
- After processing, post the payment.
PayFabric Permissions
PayFabric permissions can be set for each specific Intacct role on an as needed basis. The following image depicts the available permissions which can be configured.
For example, in a scenario where the user is mainly processing payments, they may not need access to the PayFabric Setup screen.
The following image depicts how the permissions could look for the user in this scenario.
Prevent users from processing on certain forms
As Sage Intacct allows users to process using PayFabric from various forms in new or edit mode. To prevent users from processing PayFabric transactions on these forms, the site administrator can remove the add/edit permission to these forms.
Example image showing how the user cannot process on AR Invoices because the Add/Edit permission has not been granted. Highlighted portions represent the missing actions.
PayFabric Receivables
Introduction to PayFabric Receivables
PayFabric Receivables is an add-on service to PayFabric that provides businesses the tools to
automate the many processes around collecting payment for account receivables invoices. By
leveraging the payment processing power of the PayFabric cloud, PayFabric Receivables offers
real-time payment processing for both credit card and eCheck transactions while ensuring the
highest standards of security are addressed.
This document covers how to configure and utilize PayFabric Receivables features and functionality https://www.nodus.com/wp-content/uploads/2024/08/PayFabric-Receivables-User-Guide.pdf
Supported Sage Intacct Screens
Currently we support AR Invoice, Order Entry Sales Order, Order Entry Sales Invoice, Posted Payments, and Advances for payment processing.
Important note: For payment processing, we support two states for most Intacct documents, referred to as new vs edit. Documents that are created that have not been posted, we call new. Documents which have been posted prior will be in an edit state. The UI will differ slightly based on if you are viewing the document in a new or edit state.
For Prepayments we support the Advance being created from Sage Intacct however we don't currently support Prepayments/Advances being created from PayFabric Receivables.
Supported Record/Document
The following Records/Documents are sent from Sage Intacct to PayFabric Receivables
- Customers
- AR Invoice
- Order Entry Sales Invoice
- Posted payments
The following Records/Documents are sent from PayFabric Receivables to Sage Intacct
- Payments that have been applied
The following Record types are not supported currently (will be available in future release)
- Prepayments
- Credit Applications
Working within Sage Intacct
General process to create an AR Invoice:
- Navigate to Accounts Receivable > Invoices > Add
- Populate the customer
- Populate the GL account in the entries section
- Populate amount
- Populate a location
- Click Post or Post & New
- Should Post successfully and sync over to PayFabric Receivables depending on the sync interval settings (configured in PayFabric Receivables, please refer to the Sage Intacct Installation Guide)
General process to create an AR Invoice and run a PayFabric Transaction against the Invoice:
- Navigate to Accounts Receivable > Invoices > Add
- Populate the customer
- Populate the GL account in the entries section
- Populate amount
- Populate a location
- Click PayFabric > Sale, will open PayFabric Transaction window
- Select applicable gateway
- Select appropriate credit card and process
- Click post or post & new
- Should post successfully and sync invoice and payment over to PayFabric Receivables depending on the sync interval settings (configured in PayFabric Receivables, please refer to the Sage Intacct Installation Guide)
General process to create Order Entry Sales Order/Invoice:
- Navigate to Order Entry > Sales Order or Sales Invoice > Add
- Populate the customer
- Populate the line items in the entries section
- Click calculate subtotals
- Click post or post & new
- Should Post successfully and sync over to PayFabric Receivables depending on the sync interval settings (configured in PayFabric Receivables, please refer to the Sage Intacct Installation Guide)
General process to create a payment applied to an outstanding invoice:
- Navigate to Accounts Receivable > Posted payments > Add
- Populate the customer
- Select the appropriate payment method
- Input an amount received
- Click show invoices (should open window showing outstanding invoices)
- Select which invoices you want to apply towards
- Click add & close
- Should display the selected invoices
- Click post or post & new
- Should Post successfully and sync invoice and payment to PayFabric Receivables depending on the sync interval settings (configured in PayFabric Receivables, please refer to the Sage Intacct Installation Guide)
Working within PayFabric Receivables
Expected behavior when a payment is sent from PayFabric Receivables to Sage Intacct
When paying invoices from PayFabric Receivables, the payment will be sent into Intacct and can be found under the posted payments screen.
Initially, the payment number will be the standard number generated from PayFabric Receivables.
Once it has been successfully integrated into Intacct, the record ID (identity) will be modified.
However, the payment ID will not be updated until the payment is resynced from Intacct PayFabric Receivables.
Lastly, after the payment has been sent from PayFabric Receivables to Intacct, a payment record containing the transaction details will be created in the Intacct transaction list.
The transaction list is found under the main menu > PayFabric > Transactions.
Copyright Information
Copyright © 2024 North49 Business Solutions. All rights reserved. Your right to copy this documentation is limited by copyright law and the terms of the software license agreement. As the software licensee, you may make a reasonable number of copies or printouts for your own use. Making unauthorized copies, adaptations, compilations, or derivative works for commercial distribution is prohibited and constitutes a punishable violation of the law.
Trademarks: PayFabric ® for Sage Intacct, North49 are either registered, trademarks or trademarks of North49 Business Solutions in Canada. PayFabric ® is a registered trademarks of Nodus Technologies, Inc in the United States.
The names of actual companies and products mentioned herein may be trademarks or registered marks - in the United States and/or other countries - of their respective owners.
The names of companies, products, people, and/or data used in window illustrations and sample output are fictitious and are in no way intended to represent any real individual, company, product, or event, unless otherwise noted.
Warranty: Disclaimer North49 Business Solutions disclaim any warranty regarding the sample code contained in this documentation, including the warranties of merchantability and fitness for a particular purpose.
Limitation of Liability: The content of this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by North49 Business Solutions. North49 Business Solutions assumes no responsibility or liability for any errors or inaccuracies that may appear in this manual. North49 Business Solutions nor anyone else who has been involved in the creation, production or delivery of this documentation shall be liable for any indirect, incidental, special, exemplary or consequential damages, including but not limited to any loss of anticipated profit or benefits, resulting from the use of this documentation or sample code.
License agreement Use of this product is covered by a license agreement provided with the software product. If you have any questions, please call North49 Business Solutions Support at 909-482-4701