Payment Profile
API name: cpm__Payment_Profile__c
Description
The Payment Profile object contains details about a specific payment method that a contact or account has used. A separate Payment Profile record is created for different credit cards, bank account and BIC or sort code combinations, etc. Installments are linked to payment profiles to determine what details should be used when collecting the payment.
FinDock does not store the primary account number (PAN) of a card on the payment profile, only tokenized card details.
When handling changes to payment details stored on a payment profile, in most cases you should create a new Payment Profile record rather than updating the existing record. This preserves the history of payment data related to installments paid using the original payment profile information.
Record types
Record types are used to separate and display information relevant for a given payment method. The FinDock Core package includes four record types that cover all payment method types. However, older installations may still have and use other record types that are no longer required in new installations.
Core record types:
- BBAN - for all non-IBAN account types; record layout and data validation are determined by the Country Picklist value.
- Credit Card - for all card types and brands
- IBAN - for all IBAN accounts
- Wallet - for various payment methods such as ApplePay, GooglePay, Swish, etc.
Legacy record types:
- Bank Account - UK bank accounts for Bacs package (replaced by BBAN record type)
- Bank Account - Norway and Sweden bank accounts for Nordics package (replaced by BBAN record type)
- Bank Account (Stripe) - UK bank accounts for Stripe package (replaced by BBAN record type)
- Legacy Bank Account (Deprecated) - UK bank accounts for (Core package replaced by BBAN record type)
- PayPal - Payer account for PayPal package (replaced by Wallet record type)
You can configure different page layouts for each record type to improve the user experience and streamline actions. For information about working with record types and page layouts, see Assign Page Layouts to Profiles or Record Types.
Identification and uniqueness
The Payment Profile object includes two fields for identification and enforcing uniqueness: Primary Identifier and Unique Identifier.
The Primary Identifier field is an indexed identification field that can be queried by processes like Guided Matching. The field value is determined by Record Type (account, credit card, etc.).
The Unique Identifier field is an indexed field with an enforceable, unique value that is upserted during Guided Matching processing. When payment profile uniqueness is enforced (FinDock Core general setting - disabled by default), this field ensures duplicate records are not created because of parallel processing.
The Unique Identifier value is composed of the following elements separated by an underscore:
Record Type Name
+ Primary Identifier
+ Wallet Type
(if applicable) + 18 char Contact Id (or Account Id)
Payment Profile fields
Label | Name | Type | Description |
---|---|---|---|
Account | cpm__Account__c | Lookup(Account) | Account record linked to the payment profile |
Active | cpm__Active__c | Checkbox | If not checked, the payment profile cannot be used to collect payments. |
Bank Account | cpm__Bank_Account__c | Text(50) | The unique, country-specific number that identifies the payer’s account at a specific bank |
Bank Code | cpm__Bank_Code__c | Text(255) | A unique identifier for a financial institution in a given country issued by a central bank or banking association |
Bank Name | cpm__Bank_Name__c | Text(255) | The name of the financial institution where the payer hold the bank account |
BIC | cpm__BIC_Code__c | Text(50) | The Business Identifier Code or SWIFT Code of the payer’s bank |
Branch Code | cpm__Branch_Code__c | Text(50) | The country-specific identifier of the payer’s bank branch location, also known as clearing number, routing number, etc. |
Brand | cpm__Brand__c | Text(50) | Card brand |
Card BIN | cpm__Card_BIN__c | Text(6) | Bank Identification Number of card (first four to six digits) |
CCV | cpm__CCV__c | Text (Encrypted)(5) | 3-digit Card Verification Value |
City | cpm__City__c | Text(255) | Non-EEA payer city name, required for SEPA Direct Debit |
Clearing Member Id | cpm__Clearing_Member_Id__c | Text(80) | The legal identifier of the payer’s Swiss financial institution |
Contact | cpm__Contact__c | Lookup(Contact) | Contact record linked to the payment profile |
Country | cpm__Country_PL__c | Picklist | Picklist for BBAN accounts used for validation and record type page layout |
Country | cpm__Country__c | Text(255) | Non-EEA payer Alpha-2 ISO country code, required for SEPA Direct Debit |
Created By | CreatedById | Lookup(User) | Standard Salesforce field |
Credit Card Number | cpm__Credit_Card_Number__c | Text (Encrypted)(175) | Last four digits of the card number |
Currency | CurrencyIsoCode | Picklist | Standard Salesforce field in multi-currency orgs |
Custom Tax Code | paysepa__Custom_Tax_Code__c | Text(80) | Tax code for SEPA/SEDA payments in Italy that overrides payer's default tax code from contact/account |
Enforce Uniqueness | cpm__Enforce_Uniqueness__c | Checkbox | Indicates if FinDock enforces uniqueness of payment profile |
Expiration Month | cpm__Expiration_Date__c | Picklist | Card expiration month |
Expiration Year | cpm__Expiration_Year__c | Picklist | Card expiration year |
Fingerprint | phstr__Fingerprint__c | Text(100) (External ID) | Stripe-specific unique identifier |
Funding Type | cpm__Funding_Type__c | Picklist | Indicates card type (credit or debit), required by specific processors |
Holder Name | cpm__Holder_Name__c | Text(255) | Payer’s name as it appears in the bank account owner details |
House name or number | cpm__Housename_Or_Number__c | Text(255) | Non-EEA payer house name or number, required for SEPA Direct Debit |
Housenumber (deprecated) | cpm__Housenumber__c | Number(18, 0) | Deprecated |
IBAN | cpm__IBAN__c | Text(35) | International Bank Account Number that identifies the country, bank and account number of a payer’s bank account in a valid format |
Last Modified By | LastModifiedById | Lookup(User) | Standard Salesforce field |
Owner | OwnerId | Lookup(User,Group) | Standard Salesforce field |
Payer Id | pp4ph__Payer_Id__c | Text(255) (External ID) | Payer identification specific to PayPal |
Payer Name | pp4ph__Payer_Name__c | Text(255) | Payer name specific to PayPal |
PayPal Email Address | pp4ph__PayPal_Email_Address__c | Payer email address specific to PayPal | |
Primary Identifier | cpm__Primary_Identifier__c | Text(255) (External ID) | Indexed identification for payment profile |
ProcessingHub Id | cpm__ProcessingHub_Id__c | Text(80) (External ID) | Id of process ProcessingHub process that last used the payment profile |
Record Type | RecordTypeId | Record Type | Standard Salesforce field |
Reference | Name | Auto Number | Standard Salesforce field |
Reparent Payment Profile | NPFF__Reparent_Payment_Profile__c | Text(255) | Deprecated |
Sort Code | cpm__Sort_Code__c | Text(50) | 6-digit sort code of the payer’s UK bank |
Sort Code | paybacs__Sort_Code__c | Text(50) | Deprecated |
State/Province | cpm__State_Province__c | Text(255) | Payer's address state or province |
Street | cpm__Street__c | Text(255) | Non-EEA payer street address, required for SEPA Direct Debit |
Suffix | cpm__Suffix__c | Text(10) | Payer's name suffix, such as Jr. or Sr. |
Token | cpm__Token__c | Text(255) | Token used to securely identify the card (instead of the card number) |
Token Issuer | cpm__Token_Issuer__c | Text(80) | Provider that issued the card token stored in the payment profile |
Unique Identifier | cpm__Unique_Identifier__c | Text(255) (External ID) (Unique Case Insensitive) | Indexed identification with enforceable uniqueness for payment profile |
Wallet Id | cpm__Wallet_Id__c | Text(50) | Identification number of payer's digital wallet |
Wallet Type | cpm__Wallet_Type__c | Picklist | Indicates the payment method associated with the wallet, e.g. Apple Pay or Google Pay |
Zipcode | cpm__Zipcode__c | Text(15) | Non-EEA payer postal code, required for SEPA Direct Debit |