Introduction
Mesh ProcurePay automates the process of issuing a payment method for approved purchase orders (POs).
Pre Requisites
External to Mesh
Mesh assumes that you have:
- API access to the ERP or PO management system.
- The ability to identify the PO, the relevant entity, the buyer or requester, and whether the PO should be paid by a credit card.
Mesh API Access
Reach out to your Mesh Customer Success or Account Manager to secure access to the following resources:
- Credentials to access the Mesh Developers Portal
- A Mesh Staging (i.e., sandbox) environment
- An API user for the Staging environment
- An API user for the Production environment
ProcurePay Flow - Outline
At a high level, when an employee submits a purchase request, they are automatically assigned a Mesh Card to pay for the purchase order shortly after it is approved. Below is a short outline of the ProcurePay flow, followed by a more detailed description.
- Step 1: Identify an approved PO that should be paid by a Mesh Card - In your procurement system (or ERP), you should have the capability to identify when a purchase order is approved. Additionally, you should be able to determine whether this purchase order should be paid by Mesh.
- Step 2: Identify the target card owner The card owner is the user to whom the issued card should be assigned. You determine a card owner by either assigning the card directly to the PO requester/buyer or submitting the card for additional approval.
- Step 3: Call the Mesh Issue Card API, with all necessary details. This includes Amount, Expiration, and Custom fields. Once the API call is successfully executed, a Mesh card will be issued for the approved PO.
ProcurePay Flow - Detailed
Step 1: Identify an Approved PO that should be paid by a Mesh Card
The first step happens externally to Mesh, in your Procurement system or ERP.
Usually, there are two possible ways to stay informed about Approved POs in the procurement system. One option is to receive proactive notifications (for example, by subscribing to Webhooks) when Approved POs are generated. The other option is to periodically query the system every few minutes or hours to retrieve recently approved POs.
To streamline the process, filter the approved purchase orders (POs) specifically for those intended to be paid with a credit card. This is to ensure that cards are issued in Mesh only for these selected POs.
The information that you will most likely need to query from your Procurement system is:
- The PO amount and frequency, for example: $12,000 annually, or $1,000 monthly.
- The PO buyer/requester - the person in your organization that the Mesh card will be assigned to, to make the purchase.
- The PO Expiration - how long is this PO valid for?
- Any accounting fields that will help you code the card transactions for smoother month end, such as PO number, vendor, department, project, etc.
Step 2: Identify the Card Assignee
By default, a Mesh card is issued in this flow with no additional approvals other than the approval that took place during the PR to PO process.
In some cases, organizations may require additional approval before issuing a Mesh Card. For example, if the PO amount is high (for example higher than $50,000 annually)
Does your organization require additional approval before a Mesh card is issued? (e.g. I require an additional approver for any PO with an amount higher than $50,000 annually)
- If yes, identify the PO Threshold Amount and an Individual in your organization who will be requested to approve the card, Make sure that person has a Mesh user.
- If no, you can continue to the next item.
Assigning Mesh Cards directly to Employees
To ensure a seamless user experience, in most cases, organizations that issue Mesh cards assign them directly to the buyers/requesters. However, while trying to assign the card to the employee, you may find that the employee has not been added to Mesh as a user yet. In these scenarios, you will need to make an additional API call to add a buyer/requester to Mesh as a user. For that, you will need to:
- Call the getEmployee ( by Email ) API, to check if the buyer was already added as a Mesh user.
- If not, call the addEmployee API to add the employee to Mesh, before assigning the card.
The diagram below summarizes the steps mentioned above:
Step 3: Call Mesh issueCard API
In this final step, we will guide you through the important fields in the issueCard API that are relevant to this flow. You can find the full documentation in the Mesh developer portal.
Field | Value | Required? | Comment |
symbol | Currency, ISO 4217 | yes | The currency code for the budget of the card. Example: if you wish to limit the card to a $50,000 annual spend, the symbol should be USD |
name | String | optional, but highly recommended | A meaningful card name that will help you find and identify this card in Mesh. Normally you would mention here the purpose of the card, vendor, or PO number |
description | String | optional | Longer text field to capture the description of this card. |
expirationInHours | Int | optional | The default card expiration if left empty, is 5 years (24*5*365 = 43,800 hours) You can override this value with a lower expiration, based on the PO expiration. For example, if the PO is set to expire in 1 year, you can set the card expiration to 24*365 = 8,760 hours. * You may also add buffers to the expiration * Note! Card expirations can be later changed from the Mesh App. |
acceptedCurrencies | “CARD” ”ALL” | optional | * CARD - default value, means only the card currency (symbol) is accepted. * All - means all currencies are accepted. |
customFields (please see Appendix below) | Array | optional | pass here the definition ID of the custom field you want to set a value to, and the relevant value of the custom field. For example, let’s say the definition ID of the PO custom field is 123456789, and the PO number is PO 123456, pass here: { "definitionId": "123456789", "value": "PO123456" } |
requireMemo | flag | optional | indicate whether a memo is required with every transaction, by setting this to “TRUE”. If you leave it empty, the card will default based on your company settings |
assignTo | contact ID, integer | optional, but highly recommended | Specify here the contact ID to assign the card to, based on Step 2, usually after calling the Get Employees API to retrieve the contact ID. If you do not specify a contact ID, the card will be assigned to the API user. you will be able to find the card in the Mesh App. |
limitation template > windowLimitations | Limitation template lets you add limits to the issued card, to make sure the card is used with controls and is not being misused by the buyers or requesters for other purposes. | ||
window | “DAY” ”WEEK” ”MONTH” ”YEAR” ”LIFETIME” | required | Set the window for the budget |
usageLimit | Integer | optional | By default, cards allow an unlimited number of transactions in the window specified above. If you know that the vendor should /would only charge you a certain number of times, in the specified window, you may restrict the number of transactions by specifying a value here. Consider buffering the number you apply, for any pre-authorizations that may take place by the vendor |
amountLimit | integer | optional, but highly recommended | Budget amount in the window provided above. If you apply 1000, and the window was set to MONTH, that means the card will renew each month with a 1000 USD budget. |
nonStrict | FALSE TRUE | optional | nonStrict = FALSE means the transactions will decline if the window count or amount is violated. Respectively, nonStrict = TRUE means you will only be notified of the violation but will not decline. |
Note: Mesh Administrators and API users can update the card's details before it expires, either through the API or the Mesh User Interface. The person to whom the card is assigned can also request a card edit (e.g., increase the amount, change the end date, or assign the card to a new user).
Appendix:
Identify Custom Fields for Card Pre-Coding
One of the main benefits of the flow is the ability to pre-code all issued cards with the relevant accounting fields. This helps with month-end reconciliation. Identify the fields that you want to pre-code to facilitate syncing the expense later to the ERP. Some common examples include:
- PO number
- Vendor
- Department
If you integrated your ERP with Mesh:
Most likely, all of the custom fields mentioned above have already been synced from the ERP into Mesh as part of the ERP integration, and are now available as Custom Fields in Mesh.
If you did not integrate your ERP with Mesh:
If the above fields have not yet been created in your Mesh account, set them up as Custom Fields. This is how Mesh recommends setting up the fields:
Field | Custom Field Type in Mesh | Comment |
PO number | Free text | |
Vendor number | Free text | |
Department | Drop Down | If used in the process of transaction classification, It is recommended to upload the list of departments from your ERP to Mesh. |
Get the Custom Fields respective IDs:
Definition ID refers to the ID of the Custom Field as identified by Mesh. For each custom field you wish to code in the ProcurePay process, get the respective definition ID from your Mesh Account:
- Login as an Admin to your Mesh Account
- Navigate to the Company Settings > Custom Fields
- Click on the relevant Custom Field, and grab the ID from the browser URL bar.
Comments
0 comments
Please sign in to leave a comment.