The XTRM SFDC Connector Payment Record
Version 1.4.0
Overview
This is the data object which enables XTRM to make automated payments directly from Salesforce. You can create payment records in this object, and at intervals, XTRM will fetch and process those records via the Salesforce API and update the payment status.
Expected Usage of this Object:
A company can create XTRM payment records within their Salesforce instance and supply XTRM with the credentials it needs to use the regular Salesforce API to read new (unprocessed) records at a set time interval (typically twice per day). XTRM can then update the payment record transaction IDs, processed time, and payment status in the data fields reserved for XTRM’s usage.
Payment Triggers
To import and process payment records from Salesforce, the XTRM Connecter looks for Payment Status = null, Remitter and Beneficiary Transaction ID = null, Payment amount > 0, Payment currency <> null. Optionally you can have a field Payment_Approval_Status__c = 'Approved'
Payment Object Design
Below are the 3 payment types. We have broken it down into 3 tables, however, this is one object that can be used for all payment types using the same fields by simply changing the value of "Payment Type."
Personal Payments:
Field | SFObjectName | SF Data Type | Requirement | Brief Explanation of Field |
Payment Description | payment_Description__c | Text(255) | Mandatory | Description of the payment |
Currency Code | currency_Code__c | Text(3) | Mandatory | Three-letter currency code for the payment. |
Remitter Wallet ID | remitter_Wallet_ID__c | Text(255) | Mandatory | Remitter’s XTRM Wallet ID from which to pull funds. |
Payment Amount | payment_Amount__c | Currency | Mandatory | Amount to pay to the beneficiary |
Payment Record ID | payment_Record_ID__c | Text(255) | Mandatory | Payment Record ID for this transaction (unique to this record) |
Payment Type | payment_Type__c | Text(255) | Mandatory | Personal |
Processed Timestamp | processed_Time__c | Date/Time | Written back by XTRM | Timestamp when processed by XTRM. XTRM will update the record once processed. Please note that a processed record may or may not have been paid; please check the PaymentStatus field for success or failure. |
Beneficiary XTRM Transaction ID | ben_Transaction_ID__c | Int | Written back by XTRM | An XTRM payment involves two transactions: one for the remitter and one for the beneficiary. On successful payment, the unique transaction ID for the beneficiary’s wallet is recorded here. |
Remitter XTRM Transaction ID | rem_Transaction_ID__c | Int | Written back by XTRM | An XTRM payment involves two transactions: one for the remitter and one for the beneficiary. On successful payment, the unique transaction ID for the remittor’s wallet is recorded here. |
XTRM Payment Status | payment_Status__c | Text(255) | Written back by XTRM | XTRM payment status (Completed, Failed) (XTRM use only) |
Beneficiary Legal First Name | ben_Legal_First_Name__c | Text(255) | Mandatory |
|
Beneficiary Legal First Name | ben_Legal_Last_Name__c | Text(255) | Mandatory |
|
Beneficiary Email | ben_Email__c | Text(255) | Mandatory |
|
Payment Program ID | payment_Program_ID__c | Text(255) | Optional | Remitter XTRM payment program ID |
Payment Failure Reason | payment_Failure_Reason__c | Text(255) | Written back by XTRM | XTRM payment failure reason (Insufficient fund, Other) (XTRM use only) - Reset to null for XTRM re-process payment. |
Company Payments:
Field | SFObjectName | SF Data Type | Requirement | Brief Explanation of Field |
Payment Description | payment_Description__c | Text(255) | Mandatory | Description of the payment |
Currency Code | currency_Code__c | Text(3) | Mandatory | Three-letter currency code for the payment. |
Remitter Wallet ID | remitter_Wallet_ID__c | Text(255) | Mandatory | Remitter’s XTRM Wallet ID from which to pull funds. |
Payment Amount | payment_Amount__c | Currency | Mandatory | Amount to pay the beneficiary |
Payment Record ID | payment_Record_ID__c | Text(255) | Mandatory | Payment Record ID for this transaction (unique to this record) |
Payment Type | payment_Type__c | Text(255) | Mandatory | Company |
Processed Timestamp | processed_Time__c | Date/Time | Written back by XTRM | Timestamp when processed by XTRM. XTRM will update the record once processed. Please note that a processed record may or may not have been paid; please check the PaymentStatus field for success or failure. |
Beneficiary XTRM Transaction ID | ben_Transaction_ID__c | Int | Written back by XTRM | An XTRM payment involves two transactions: one for the remitter and one for the beneficiary. On successful payment, the unique transaction ID for the beneficiary’s wallet is recorded here. |
Remitter XTRM Transaction ID | rem_Transaction_ID__c | Int | Written back by XTRM | An XTRM payment involves two transactions: one for the remitter and one for the beneficiary. On successful payment, the unique transaction ID for the remittor’s wallet is recorded here. |
XTRM Payment Status | payment_Status__c | Text(255) | Written back by XTRM | XTRM payment status (Completed, Failed) (XTRM use only) |
Beneficiary Company Contact Legal First Name | ben_Company_Contact_Legal_First_Name__c | Text(255) | Mandatory |
|
Beneficiary Company Contact Legal Last Name | ben_Company_Contact_Legal_Last_Name__c | Text(255) | Mandatory |
|
Beneficiary Company Email | ben_Company_Email__c | Text(255) | Mandatory | Email address of the master admin. The domain is validated. |
Beneficiary Company Name | ben_Company_Name__c | Text(255) | Mandatory | Company Name |
Beneficiary Organization ID | ben_OrganizationID__c | Text(255) | Optional | The XTRM organization ID for the beneficiary. Although this field is optional, if present, it will be checked and validated. It is format SPN12345678 |
Payment Program ID | payment_Program_ID__c | Text(255) | Optional | Remitter XTRM payment program ID |
Beneficiary Company Wallet ID | ben_Company_Wallet_ID__c | Int | Optional | Wallet IDs are unique and from 3 to 10 numbers. If not specified, the payment will go to an existing default wallet of the beneficiary, which holds that currency (each wallet holds a single currency). If the beneficiary does not currently have a wallet for that currency, a wallet will be created for the beneficiary. This field is used to specify a particular wallet when the beneficiary has multiple wallets for currency. |
Payment Failure Reason | payment_Failure_Reason__c | Text(255) | Written back by XTRM | XTRM payment failure reason (Insufficient fund, Other) (XTRM use only) - Reset to null for XTRM re-process payment. |
Employer Payments:
Field | SFObjectName | SF Data Type | Requirement | Brief Explanation of Field |
Payment Description | payment_Description__c | Text(255) | Mandatory | Description of the payment |
Currency Code | currency_Code__c | Text(3) | Mandatory | Three-letter currency code for the payment. |
Remitter Wallet ID | remitter_Wallet_ID__c | Text(255) | Mandatory | Remitter’s XTRM Wallet ID from which to pull funds. |
Payment Amount | payment_Amount__c | Currency | Mandatory | Amount to pay the beneficiary |
Payment Record ID | payment_Record_ID__c | Text(255) | Mandatory | Payment Record ID for this transaction (unique to this record) |
Payment Type | payment_Type__c | Text(255) | Mandatory | Employer |
Processed Timestamp | processed_Time__c | Date/Time | Written back by XTRM | Timestamp when processed by XTRM. XTRM will update the record once processed. Please note that a processed record may or may not have been paid; please check the PaymentStatus field for success or failure. |
Beneficiary XTRM Transaction ID | ben_Transaction_ID__c | Int | Written back by XTRM | An XTRM payment involves two transactions: one for the remitter and one for the beneficiary. On successful payment, the unique transaction ID for the beneficiary’s wallet is recorded here. |
Remitter XTRM Transaction ID | rem_Transaction_ID__c | Int | Written back by XTRM | An XTRM payment involves two transactions: one for the remitter and one for the beneficiary. On successful payment, the unique transaction ID for the remittor’s wallet is recorded here. |
XTRM Payment Status | payment_Status__c | Text(255) | Written back by XTRM | XTRM payment status (Completed, Failed) (XTRM use only) |
Employer Company Contact Legal First Name | employer_Contact_Legal_First_Name__c | Text(255) | Mandatory |
|
Employer Company Contact Legal Last Name | employer_Contact_Legal_Last_Name__c | Text(255) | Mandatory |
|
Employer Company Email | employer_Company_Email__c | Text(255) | Mandatory |
|
Employer Company Name | employer_Company_Name__c | Text(255) | Mandatory |
|
Beneficiary Legal First Name | ben_Legal_First_Name__c | Text(255) | Mandatory |
|
Beneficiary Legal First Name | ben_Legal_Last_Name__c | Text(255) | Mandatory |
|
Beneficiary Email | ben_Email__c | Text(255) | Mandatory |
|
Payment Program ID | payment_Program_ID__c | Text(255) | Optional | Remitter XTRM payment program ID |
Employer Company Wallet ID | employer_Company_Wallet_ID__c | Int | Optional | Wallet IDs are unique and from 3 to 10 numbers. If not specified, the payment will go to an existing default wallet of the beneficiary, which holds that currency (each wallet holds a single currency). If the beneficiary does not currently have a wallet for that currency, a wallet will be created for the beneficiary. This field is used to specify a particular wallet when the beneficiary has multiple wallets for currency. |
Payment Failure Reason | payment_Failure_Reason__c | Text(255) | Written back by XTRM | XTRM payment failure reason (Insufficient fund, Other) (XTRM use only) - Reset to null for XTRM re-process payment. |
XTRM SFDC Payment Application Configuration
Client ID, Client Secret, Username, Password, Object name, Namespace
Client ID and Client Secret are part of the Connected Apps credentials. You can create a Connected App, and you will get the client ID and Client Secret as described below.
Click on one of the connected apps you created to see this.
The username and password are the Salesforce login credentials that have access to the Connected App you created.
Object name is the name of the payment object in your Salesforce environment.
Name space is something you would have created, and all the custom objects will be prefixed with that.
For example, in the previous screenshot, if you have name space set as Commvault, then the object name will look like YOURCO_Payment__c
Write access permission to the fields in your payment object.
processed_Time__c
ben_Transaction_ID__c
rem_Transaction_ID__c
payment_Status__c
payment_Failure_Reason__c