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