{"items":[{"type":"link","label":"FinDock Payment API","link":"/api/payment-api-v2","routeSlug":"/api/payment-api-v2","content":{"contentType":"overview","meta":{"name":"FinDock Payment API"},"children":[{"nodeType":"container","panels":[{"title":"Overview","titleTranslationKey":"info.title","children":[{"kind":"externallink","title":"License","titleTranslationKey":"info.license","label":"FinDock","url":"https://findock.com/legal/"}]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo","description":"The domain name for your org."}}}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"FinDock Payment API (v2)","showPageActions":true},{"nodeType":"markdoc","content":"API reference specification. Last updated on 2026-06-22."},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The FinDock Payment API is a REST API for handling one-time and recurring payments. The API also"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"provides informational endpoints you can use to build dynamic front-end applications that are"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not dependent on a specific Salesforce of FinDock configuration."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Alongside primitive data types such as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"string"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", the Payment API uses data types that might be unfamiliar"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"to you if you have not worked with Salesforce. These data types are Salesforce objects, record types"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and fields."},"children":[]}]}]}]}],"sectionId":"/api/payment-api-v2"}],"sectionId":"/api/payment-api-v2"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/objects-record-types-and-fields"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Objects, record types and fields"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Salesforce objects (sObjects) are stored as records in the Salesforce database. These records are persistent representations of data."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Some API resources accept, or even require, sObjects. The Payer block, for example, requires sObjects such as Contact and Account."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The API allows you to define these objects in payloads. FinDock sObjects like Inbound Report can be included as well,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"but they require you to specify the object fields as Salesforce fields."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Record types"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" let Salesforce administrators offer specific business processes, picklist values, and page layouts to different users."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Organizations can, for example, differentiate between "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Account"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object records by assigning them an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Organization"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Household"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" record type."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This facilitates the application of different types of page layouts or possible field values based on what record type an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Account"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Fields"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are defined at the object level in Salesforce. Next to the out-of-the-box fields from Salesforce, custom fields can be added to objects."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use the Object Manager in Salesforce Setup to see available fields. Implementations of Salesforce can use different fields for a value like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Custom fields for "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"standard Salesforce objects"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Contact"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Account"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are passed with \"__c\" at the end of the field name."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In the example below, you see the standard fields "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FirstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"LastName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and a custom field "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TwitterHandle"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for the Contact object."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"Payer\":{\n    \"Contact\":{\n      \"SalesforceFields\":{\n            \"FirstName\":\"Test\",\n            \"LastName\":\"Payer\",\n            \"TwitterHandle__c\": \"@TestPayerFamily\"\n        }\n    }\n  }\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"Payer\":{\n    \"Contact\":{\n      \"SalesforceFields\":{\n            \"FirstName\":\"Test\",\n            \"LastName\":\"Payer\",\n            \"TwitterHandle__c\": \"@TestPayerFamily\"\n        }\n    }\n  }\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Custom fields for "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"custom FinDock objects"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Installment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Recurring Payment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can also be passed in a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SalesforceFields"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SalesforceFields"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"passed in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OneTime"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object are copied to the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Installment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" record in Salesforce and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"SalesforceFields"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" passed in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Recurring"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object are copied to the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Recurring"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object in Salesforce. To which "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Recurring"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object the values are stored depends on the FinDock configuration."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"    {\n      \"OneTime\":{\n        \"Amount\": 10.0,\n        \"SalesforceFields\": {\n          \"Sales_Invoice__c\": \"a506E0000009TfL\"\n        }\n      }\n    }\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"    {\n      \"OneTime\":{\n        \"Amount\": 10.0,\n        \"SalesforceFields\": {\n          \"Sales_Invoice__c\": \"a506E0000009TfL\"\n        }\n      }\n    }\n"},"children":[]}]}]}],"sectionId":"/api/payment-api-v2/section/objects-record-types-and-fields"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/working-with-payer-details"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Working with payer details"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Salesforce provides two objects to define the Payer:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Account: usually an organization"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Contact: an individual"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Added to that simple split is "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/s/articleView?id=sf.account_person.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Person Account"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", which"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"stores information about individual people by combining certain Account and Contact fields into a single record. It is not its"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"own object, but can be stored as an Account with a specific record type (see below)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Some features of Salesforce - like Fundraising used in NonProfit Cloud (NPC) - "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"require"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Person Account. The payer details are a Person Account"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"record rather than a Contact. Make sure to always check with your Salesforce admin whether they are enabled and used."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To send Person Account details to the Payment API, use an Account object with a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"RecordTypeName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (API name) of the type Person Account."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"By default the API name is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PersonAccount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", but there can be customized or the org (Salesforce environment may have multiple"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Person Account record types. Always consult your Salesforce admin regarding record types."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Whether an Account or Contact record, you always need to take into consideration how the payer is deduplicated. Every organization"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"has "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/s/articleView?id=sales.managing_duplicates_overview.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"configured deduplication rules"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"that define the information the payment intent message needs to include for deduplication, bearing in mind that the more data points you"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"have, the more effective deduplication is."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"Account\":{\n    \"RecordTypeName\": \"person-account-record-type\",\n        \"SalesforceFields\":{\n          \"Name\":\"Test Payer\",\n          \"BillingStreet\":\"Any Street\",\n          \"BillingCity\":\"Any City\",\n          \"BillingPostalCode\":\"00000\"\n        }\n      }\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"Account\":{\n    \"RecordTypeName\": \"person-account-record-type\",\n        \"SalesforceFields\":{\n          \"Name\":\"Test Payer\",\n          \"BillingStreet\":\"Any Street\",\n          \"BillingCity\":\"Any City\",\n          \"BillingPostalCode\":\"00000\"\n        }\n      }\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For Person Accounts the following exceptions for (custom) field notations apply:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Standard Account fields can be passed as regular fields: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"BillingStreet\":\"Any Street\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Custom Account fields can be passed with the regular "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"__c"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" suffix: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"Custom_Street__c\":\"Any Street\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Standard Contact fields need to be prefixed with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Person"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", with the exception of FirstName, LastName, Salutation which are passed as regular fields: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"PersonEmail\" : \"test@findock.com\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Custom Contact fields need to be suffixed with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"__pc"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"Custom_email__pc\":\"test@findock.com\""},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"Account\":{\n    \"RecordTypeName\": \"person-account-record-type\",\n    \"SalesforceFields\":{\n      \"FirstName\": \"John\",\n      \"LastName\": \"Payer\",\n      \"PersonEmail\": \"test@findock.com\",\n      \"BillingStreet\": \"Any Street\",\n      \"Custom_account_field__c\": \"Apartment Name\",\n      \"Custom_contact_field__pc\": \"Middle Name\"\n    }\n  }\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"Account\":{\n    \"RecordTypeName\": \"person-account-record-type\",\n    \"SalesforceFields\":{\n      \"FirstName\": \"John\",\n      \"LastName\": \"Payer\",\n      \"PersonEmail\": \"test@findock.com\",\n      \"BillingStreet\": \"Any Street\",\n      \"Custom_account_field__c\": \"Apartment Name\",\n      \"Custom_contact_field__pc\": \"Middle Name\"\n    }\n  }\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For the FinDock for Fundraising source connector used with NonProfit Cloud (NPC), for example, the following exception applies:"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Since the \"Recurring\" object (Gift Commitment) is split in two objects (Gift Commitment & Gift Commitment Schedule), a prefix "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GiftCommitment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is required to set SalesforceFields on this object."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Fields without prefix are assumed to be set on the Gift Commitment Schedule object. Example: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GiftCommitment.GiftVehicle"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"You can check which Source Connectors are available by performing a GET operation on the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/source-connectors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Source Connector"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]}]}],"sectionId":"/api/payment-api-v2/section/working-with-payer-details"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/authentication"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication is accomplished through an "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Oauth2.0 authorization flow"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Each Salesforce environment requires"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"its own token. A "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_flows.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"refresh token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can be used to acquire a new access token if the current token has expired."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read more on how to authenticate to Salesforce in the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_flows.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Salesforce developer guide"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Both "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"client_id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"client_secret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" can be acquired from the Salesforce 'Setup' from a 'Connected App'."},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Authorization"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" token can be passed as a Bearer token in the request Header."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To Acquire a new "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Authorization"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" token with the returned "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Refresh"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" token, please make sure to pass the right "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"grant_type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"client_id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"client_secret"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refresh_token"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as specified in the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Salesforce documentation referenced above. To get up and running quickly, use the (unofficial-but-provided-by) "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://github.com/scolladon/postman-salesforce-apis"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Salesforce Postman Collection"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":","},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"as explained in this "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://developer.salesforce.com/blogs/2020/03/explore-the-salesforce-apis-with-a-postman-collection.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"blog"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and look for the 'auth' folder."},"children":[]}]}]}]}]}],"sectionId":"/api/payment-api-v2/section/authentication"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"IF the API is not called successfully, you receive a HTTP Status Code "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"4xx"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"500"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". A "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"422"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" code is returned when the message was well-formed, but could not be processed because of, for instance, wrong data."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In the response you find additional information on how to prevent or handle the error through an array of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Errors"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"error_code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"error_message"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", like in the following example."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"Errors\": [\n    {\n      \"error_message\": \"Amount can't be 0 or negative\",\n      \"error_code\": \"200\"\n    }\n  ]\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"Errors\": [\n    {\n      \"error_message\": \"Amount can't be 0 or negative\",\n      \"error_code\": \"200\"\n    }\n  ]\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Below are some of the possible error codes:"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Code"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Description"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"010"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Malformed request: missing one or more mandatory core parameter(s)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"011"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Malformed request: missing one or more mandatory Payment Processor parameters"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"012"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Malformed request: missing one or more mandatory SourceConnector parameters"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"200"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Invalid data: the supplied data is incorrect (e.g. an invalid e-mail address)."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"201"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sort code or bank account is invalid (Bacs Direct Debit)."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"202"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"IBAN "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"_"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"<your-IBAN>"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not valid."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"203"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The provided IBAN is not in SEPA geographical zone."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"204"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"BIC is required to collect SEPA Direct Debit from a non-EAA country bank account."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"205"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Street, Housename or Number, Zip code and City are required to collect SEPA Direct Debit from a non-EEA country bank account."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"206"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Clearing number and/or bank account invalid (Sweden)."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"998"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An object is missing and no default is specified in the org."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"999"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error without specific category: consult the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"error_message"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for details."},"children":[]}]}]}]}]}]}]}],"sectionId":"/api/payment-api-v2/section/error-and-response-codes"},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"section/webhook-events-and-notifications"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Webhook events and notifications"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To receive updates on payments created with the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/PaymentIntent"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"pass an endpoint URL in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"WebhookURL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" parameter in the request body."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"add your URL to the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=configuring_remoteproxy.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Remote Site Setting"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of the Salesforce org."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FinDock sends you notifications for the following events around your API call:"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Event"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Description"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentIntent.processed"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Processing of the API call has finished successfully. This does not mean a payment is collected."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentIntent.in_review"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Processing of the API call has stalled and manual intervention from Salesforce side is needed. This does not stop the payer from completing the payment flow."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentIntent.failed"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Processing of theAPI call has failed and needs to be handled in the Salesforce environment. This does not stop the payer from completing the payment flow."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"installment.created"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When an Installment record (expected one-time payment) is created."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"installment.status_change"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"status"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of the Installment record changes, either via a notification from a PSP or manually changed."},"children":[]}]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No specific events are sent for recurring payments other than the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentIntent"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" which contains the Salesforce Id of the recurring record."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For more information about processing online payments, please "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/processing-and-reconciling-online-payments"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Processing online payments"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentIntent"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" you receive notifications with the following body. Each event contains a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"data"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object with further details."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Check out the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/payment-intent"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PaymentIntent object schema"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for definitions."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"type\": \"paymentIntent.processed\",\n  \"data\": {\n    \"Status\": \"Matched\",\n    \"Recurring\": {\n      \"Url\": \"/services/data/v65.0/sobjects/cpm__Recurring_Payment__c/a0V3X00000S7b5YUAR\",\n      \"Type\": \"cpm__Recurring_Payment__c\",\n      \"Id\": \"a0V3X00000S7b5YUAR\"\n    },\n    \"Payer\": {\n      \"Contact\": {\n        \"Url\": \"/services/data/v65.0/sobjects/Contact/0033X00003H9uZPQAZ\",\n        \"Type\": \"Contact\",\n        \"Id\": \"0033X00003H9uZPQAZ\",\n        \"Name\": \"Test Payment\"\n      },\n      \"Account\": {\n        \"Url\": \"/services/data/v65.0/sobjects/Account/0013X00002bZPGIQA4\",\n        \"Type\": \"Account\",\n        \"Id\": \"0013X00002bZPGIQA4\",\n        \"Name\": \"Payment Family\"\n      }\n    },\n    \"OneTime\": {\n      \"Url\": \"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001mFTBAQA4\",\n      \"Type\": \"cpm__Installment__c\",\n      \"Id\": \"a083X00001mFTBAQA4\",\n      \"Status\": \"Pending\"\n    },\n    \"Id\": \"pi_6cazikr7625yqt9mf\"\n  }\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"type\": \"paymentIntent.processed\",\n  \"data\": {\n    \"Status\": \"Matched\",\n    \"Recurring\": {\n      \"Url\": \"/services/data/v65.0/sobjects/cpm__Recurring_Payment__c/a0V3X00000S7b5YUAR\",\n      \"Type\": \"cpm__Recurring_Payment__c\",\n      \"Id\": \"a0V3X00000S7b5YUAR\"\n    },\n    \"Payer\": {\n      \"Contact\": {\n        \"Url\": \"/services/data/v65.0/sobjects/Contact/0033X00003H9uZPQAZ\",\n        \"Type\": \"Contact\",\n        \"Id\": \"0033X00003H9uZPQAZ\",\n        \"Name\": \"Test Payment\"\n      },\n      \"Account\": {\n        \"Url\": \"/services/data/v65.0/sobjects/Account/0013X00002bZPGIQA4\",\n        \"Type\": \"Account\",\n        \"Id\": \"0013X00002bZPGIQA4\",\n        \"Name\": \"Payment Family\"\n      }\n    },\n    \"OneTime\": {\n      \"Url\": \"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001mFTBAQA4\",\n      \"Type\": \"cpm__Installment__c\",\n      \"Id\": \"a083X00001mFTBAQA4\",\n      \"Status\": \"Pending\"\n    },\n    \"Id\": \"pi_6cazikr7625yqt9mf\"\n  }\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"installment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" you receive a notification with the following body."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"type\": \"installment\",\n  \"data\": {\n    \"Url\": \"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001kJynLQAS\",\n    \"Type\": \"cpm__Installment__c\",\n    \"Id\": \"a083X00001kJynLQAS\",\n    \"Target\": \"Adyen1\",\n    \"Status\": \"Collected\",\n    \"RecordTypeName\": \"Receivable\",\n    \"PayUrl\": \"https://link.dev.findock.com/pay/3xxxxmuai2/8897b4da-e48a-7ff3-90dd-ecb65094802c\",\n    \"Payments\": [\n      {\n        \"Url\": \"/services/data/v65.0/sobjects/cpm__Payment__c/a0R3X00000V1sutUAB\",\n        \"Type\": \"cpm__Payment__c\",\n        \"Id\": \"a0R3X00000V1sutUAB\",\n        \"PaymentProcessor\": \"PaymentHub-Adyen\",\n        \"PaymentMethod\": \"CreditCard\",\n        \"CollectionDate\": \"2020-11-26\",\n        \"Amount\": 15\n      }\n    ],\n    \"PaymentProcessor\": \"PaymentHub-Adyen\",\n    \"PaymentMethod\": \"CreditCard\",\n    \"PaymentIntentId\": \"pi_5jthokq7z8som0w6o\",\n    \"AmountOpen\": 0,\n    \"Amount\": 15\n  }\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"type\": \"installment\",\n  \"data\": {\n    \"Url\": \"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001kJynLQAS\",\n    \"Type\": \"cpm__Installment__c\",\n    \"Id\": \"a083X00001kJynLQAS\",\n    \"Target\": \"Adyen1\",\n    \"Status\": \"Collected\",\n    \"RecordTypeName\": \"Receivable\",\n    \"PayUrl\": \"https://link.dev.findock.com/pay/3xxxxmuai2/8897b4da-e48a-7ff3-90dd-ecb65094802c\",\n    \"Payments\": [\n      {\n        \"Url\": \"/services/data/v65.0/sobjects/cpm__Payment__c/a0R3X00000V1sutUAB\",\n        \"Type\": \"cpm__Payment__c\",\n        \"Id\": \"a0R3X00000V1sutUAB\",\n        \"PaymentProcessor\": \"PaymentHub-Adyen\",\n        \"PaymentMethod\": \"CreditCard\",\n        \"CollectionDate\": \"2020-11-26\",\n        \"Amount\": 15\n      }\n    ],\n    \"PaymentProcessor\": \"PaymentHub-Adyen\",\n    \"PaymentMethod\": \"CreditCard\",\n    \"PaymentIntentId\": \"pi_5jthokq7z8som0w6o\",\n    \"AmountOpen\": 0,\n    \"Amount\": 15\n  }\n}\n"},"children":[]}]}]}],"sectionId":"/api/payment-api-v2/section/webhook-events-and-notifications"}]}]}},{"type":"link","label":"Objects, record types and fields","link":"/api/payment-api-v2/section/objects-record-types-and-fields","routeSlug":"/api/payment-api-v2/section/objects-record-types-and-fields","content":null},{"type":"link","label":"Working with payer details","link":"/api/payment-api-v2/section/working-with-payer-details","routeSlug":"/api/payment-api-v2/section/working-with-payer-details","content":null},{"type":"link","label":"Authentication","link":"/api/payment-api-v2/section/authentication","routeSlug":"/api/payment-api-v2/section/authentication","content":null},{"type":"link","label":"Error and response codes","link":"/api/payment-api-v2/section/error-and-response-codes","routeSlug":"/api/payment-api-v2/section/error-and-response-codes","content":null},{"type":"link","label":"Webhook events and notifications","link":"/api/payment-api-v2/section/webhook-events-and-notifications","routeSlug":"/api/payment-api-v2/section/webhook-events-and-notifications","content":null},{"type":"group","label":"Payment Intent","link":"/api/payment-api-v2/payment-intent","routeSlug":"/api/payment-api-v2/payment-intent","items":[{"label":"Create, pay or update payments","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/payment-intent/paymentintent","routeSlug":"/api/payment-api-v2/payment-intent/paymentintent","metadata":{"seo":{"title":"Create, pay or update payments","description":"The /PaymentIntent endpoint supports four POST operations: (1) create a new one-time payment, (2) create a new recurring payment, (3) pay an existing installment, and (4) updatean existing recurring payment. All actions automatically update Salesforce data accordingly."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PaymentIntent","name":"Create, pay or update payments","isWebhook":false,"pointer":"/paths/~1PaymentIntent/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create, pay or update payments","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/PaymentIntent"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint supports four POST operations: (1) create a new one-time payment, (2) create a new recurring payment, (3) pay an existing installment, and (4) update"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"an existing recurring payment. All actions automatically update Salesforce data accordingly."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_5","exampleIds":["paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment"]}},"schemaId":"schema_5","exampleIds":["paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment"],"pointer":"/paths/~1PaymentIntent/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/PaymentIntent","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"requestBody":{"application/json":{"schemaId":"schema_5","exampleIds":["paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment"]}},"responseCodes":["200","400","422","500"],"pointer":"/PaymentIntent","href":"payment-intent/paymentintent","openApiOperationId":"PaymentIntent","summary":"Create, pay or update payments","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"schemaId":"schema_5","exampleIds":["paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_5","exampleIds":["paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget","paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment"]}},"examples":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PaymentIntentSuccessResponse"}},"schemaId":"components/schemas/PaymentIntentSuccessResponse"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Something was wrong with the request parameters sent to the API. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PaymentIntentFailedResponse422"}},"schemaId":"components/schemas/PaymentIntentFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1PaymentIntent/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/PaymentIntentSuccessResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PaymentIntentSuccessResponse"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/PaymentIntentFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PaymentIntentFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/payment-intent/paymentintent"}],"panels":[]}]},"httpPath":"/PaymentIntent"},{"label":"Check inbound report status","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/payment-intent/paymentstatus","routeSlug":"/api/payment-api-v2/payment-intent/paymentstatus","metadata":{"seo":{"title":"Check inbound report status","description":"Use this operation to get the status of the inbound report of a payment intent along with information about the related installment or recurring payment(Recurring Payment, Gift Commitment or Recurring Donation object record). To get details of the related records themselves, use the /Installmentand /Recurring endpoints."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"PaymentStatus","name":"Check inbound report status","isWebhook":false,"pointer":"/paths/~1PaymentIntent~1{ID}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Check inbound report status","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use this operation to get the status of the inbound report of a payment intent along with information about the related installment or recurring payment"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(Recurring Payment, Gift Commitment or Recurring Donation object record). To get details of the related records themselves, use the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/installment/"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/Installment"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"and "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/recurring"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/Recurring"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"ID","in":"path","schemaId":"schema_7","description":"The Id of the payment intent to check.","required":true}],"pointer":"/paths/~1PaymentIntent~1{ID}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/PaymentIntent/{ID}","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[{"name":"ID","in":"path","required":true,"example":"pi_1hubybk7nh45rvbt6","schemaId":"schema_7"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"responseCodes":["200","400","422","500"],"pointer":"/PaymentIntent/{ID}","href":"payment-intent/paymentstatus","openApiOperationId":"PaymentStatus","summary":"Check inbound report status","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_8"}},"schemaId":"schema_8"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unprocessable Entity: The message was well-formed, but could not be processed. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentIntentFailedResponse422"}},"schemaId":"components/schemas/GetPaymentIntentFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1PaymentIntent~1{ID}/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_8","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_8"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/GetPaymentIntentFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentIntentFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/payment-intent/paymentstatus"}],"panels":[]}]},"httpPath":"/PaymentIntent/{ID}"},{"type":"link","label":"PaymentIntent","link":"/api/payment-api-v2/payment-intent/paymentintent","routeSlug":"/api/payment-api-v2/payment-intent/paymentintent","httpVerb":"schema","content":{"contentType":"item","itemVariant":"schema","meta":{"name":"PaymentIntent"},"seo":{"title":"PaymentIntent"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"PaymentIntent","showPageActions":true}],"panels":[]},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"tag","tag":"schemaDefinition","attributes":{"showWriteOnly":true,"schemaRef":"#/components/schemas/PaymentIntent"},"children":[]}]}]}}],"content":{"contentType":"group","meta":{"name":"Payment Intent"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Payment Intent","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/PaymentIntent"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint supports handling both one-time and recurring payments. For recurring payments, a Recurring block replaces, or is"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"added alongside, the OneTime block in the request. Some Payment Service Providers (PSPs) require or optionally support an initial payment"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"(a OneTime block) AND Recurring block in the same request for authorization. You can find out the initial payment details for a given PSP"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"using "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /PaymentMethods"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When using the endpoint to initiate new payments, check the org configuration and make sure you have the correct details by querying the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/payment-methods"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment Method"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/source-connectors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Source Connectors"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints. Some payment methods"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"enable or require further "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/package-actions"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Package Actions"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Be sure to also include these in the payment intent request."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In addition to setting up new one-time or recurring payments, you can pay existing one-time payments (installments) and update existing recurring payments."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To pay an existing installment, simply exclude the Payer block and add the Id of the installment to the OneTime block. We recommend first checking the"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"details of the installment using "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /Installment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with the GUID or record Id."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"To update the payment method, processor or other details of a recurring payment, remove the Payer block and add the identifier of the recurring payment"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"to the Recurring block along with a PaymentMethod block that includes the details to be changed. As with installments, we recommend first checking current"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"details by using "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /Recurring"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with the GUID or record Id."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The endpoint also supports checking the status of payment intent inbound report processing. Use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GET /PaymentIntent/{ID}"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" where ID is payment intent Id"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"of the one-time or recurring payment."},"children":[]}]}]}]},{"nodeType":"external-docs","url":"https://docs.findock.com/docs/payment-processors","description":"Please see the specific payment processor articles for further details."}],"panels":[{"children":[{"kind":"group-items","title":"Schemas","titleTranslationKey":"schemas","items":[{"title":"PaymentIntent","link":"/payment-intent/paymentintent","deprecated":false}]},{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/PaymentIntent","summary":"Create, pay or update payments","prefix":{"name":"post","color":"post"},"badges":[],"link":"/payment-intent/paymentintent","deprecated":false},{"title":"/PaymentIntent/{ID}","summary":"Check inbound report status","prefix":{"name":"get","color":"get"},"badges":[],"link":"/payment-intent/paymentstatus","deprecated":false}]}]}]}]}},{"type":"group","label":"Installment","link":"/api/payment-api-v2/installment","routeSlug":"/api/payment-api-v2/installment","items":[{"label":"Get installment details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/installment/installmentdetails","routeSlug":"/api/payment-api-v2/installment/installmentdetails","metadata":{"seo":{"title":"Get installment details","description":"This endpoint returns detailed information of an Installment record in Salesforce, including status and related Payment records."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"InstallmentDetails","name":"Get installment details","isWebhook":false,"pointer":"/paths/~1Installment~1{ID}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get installment details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"This endpoint returns detailed information of an Installment record in Salesforce, including status and related Payment records.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"ID","in":"path","schemaId":"schema_9","description":"The record Id or GUID of the installment to query.","required":true}],"pointer":"/paths/~1Installment~1{ID}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/Installment/{ID}","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[{"name":"ID","in":"path","required":true,"example":"a083X00001aUMCnQAO","schemaId":"schema_9"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"responseCodes":["200","400","422","500"],"pointer":"/Installment/{ID}","href":"installment/installmentdetails","openApiOperationId":"InstallmentDetails","summary":"Get installment details","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetInstallmentSuccessResponse"}},"schemaId":"components/schemas/GetInstallmentSuccessResponse"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unprocessable Entity: The message was well-formed, but could not be processed. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetInstallmentFailedResponse422"}},"schemaId":"components/schemas/GetInstallmentFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1Installment~1{ID}/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/GetInstallmentSuccessResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetInstallmentSuccessResponse"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/GetInstallmentFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetInstallmentFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/installment/installmentdetails"}],"panels":[]}]},"httpPath":"/Installment/{ID}"}],"content":{"contentType":"group","meta":{"name":"Installment"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Installment","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/Installment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint allows you to retrieve detailed information about an existing "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/data-model/installment"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Installment"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":","},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the FinDock equivalent of a one-time payment intent. "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/data-model/payment"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" records in FinDock represent actual cash flow,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"so a single installment can have one or more related payments made with the same or different processors and payment methods."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One-time payment intents created through the Payment API become installments. These and all other installments"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"installments created through other channels can be queried through the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/Installment"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The response includes a list of all Payment records (cash movements) related to the queried installment."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/Installment/{ID}","summary":"Get installment details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/installment/installmentdetails","deprecated":false}]}]}]}]}},{"type":"group","label":"Recurring","link":"/api/payment-api-v2/recurring","routeSlug":"/api/payment-api-v2/recurring","items":[{"label":"Get recurring payment details","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/recurring/recurringdetails","routeSlug":"/api/payment-api-v2/recurring/recurringdetails","metadata":{"seo":{"title":"Get recurring payment details","description":"This endpoint returns detailed information of a recurring payment in Salesforce. The record is source-specific, so you need to ensure you are referencing the correct object record. The object may be the FinDock Recurring Payment or Salesforce objects like Recurring Donation or Gift Commitment."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"RecurringDetails","name":"Get recurring payment details","isWebhook":false,"pointer":"/paths/~1Recurring~1{ID}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get recurring payment details","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"This endpoint returns detailed information of a recurring payment in Salesforce. The record is source-specific, so you need to ensure you are referencing the correct object record.\nThe object may be the FinDock Recurring Payment or Salesforce objects like Recurring Donation or Gift Commitment.\n"},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"ID","in":"path","schemaId":"schema_9","description":"The record Id or GUID of the recurring payment record to query.","required":true}],"pointer":"/paths/~1Recurring~1{ID}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/Recurring/{ID}","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[{"name":"ID","in":"path","required":true,"example":"a083X00001aUMCnQAO","schemaId":"schema_9"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"responseCodes":["200","400","422","500"],"pointer":"/Recurring/{ID}","href":"recurring/recurringdetails","openApiOperationId":"RecurringDetails","summary":"Get recurring payment details","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetRecurringSuccessResponse"}},"schemaId":"components/schemas/GetRecurringSuccessResponse"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unprocessable Entity: The message was well-formed, but could not be processed. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetRecurringFailedResponse422"}},"schemaId":"components/schemas/GetRecurringFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1Recurring~1{ID}/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/GetRecurringSuccessResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetRecurringSuccessResponse"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/GetRecurringFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetRecurringFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/recurring/recurringdetails"}],"panels":[]}]},"httpPath":"/Recurring/{ID}"}],"content":{"contentType":"group","meta":{"name":"Recurring"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Recurring","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"/Recurring"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoint allows you to retrieve information about an existing recurring payments. These can be records for the FinDock Recurring"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment object or records for source-specific Salesforce objects such as Recurring Donation (NPSP) and Gift Commitment (Fundraising)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The response includes a full list of details about the recurring payment which can be used to confirm and update, for example,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the payment method and processor for future installment collections."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/Recurring/{ID}","summary":"Get recurring payment details","prefix":{"name":"get","color":"get"},"badges":[],"link":"/recurring/recurringdetails","deprecated":false}]}]}]}]}},{"type":"group","label":"Payment Methods","link":"/api/payment-api-v2/payment-methods","routeSlug":"/api/payment-api-v2/payment-methods","items":[{"label":"Get payment methods and processors","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/payment-methods/getpaymentmethods","routeSlug":"/api/payment-api-v2/payment-methods/getpaymentmethods","metadata":{"seo":{"title":"Get payment methods and processors","description":"This endpoint returns a complete list of activated payment methods in the Salesforce org and the payment processors configured to process those methods."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"GetPaymentMethods","name":"Get payment methods and processors","isWebhook":false,"pointer":"/paths/~1PaymentMethods/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get payment methods and processors","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"This endpoint returns a complete list of activated payment methods in the Salesforce org and the payment processors configured to process those methods."},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/PaymentMethods","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"responseCodes":["200","400","422","500"],"pointer":"/PaymentMethods","href":"payment-methods/getpaymentmethods","openApiOperationId":"GetPaymentMethods","summary":"Get payment methods and processors","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsSuccessResponse"}},"schemaId":"components/schemas/GetPaymentMethodsSuccessResponse"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unprocessable Entity: The message was well-formed, but could not be processed. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"}},"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1PaymentMethods/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/GetPaymentMethodsSuccessResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsSuccessResponse"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/GetPaymentMethodsFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/payment-methods/getpaymentmethods"}],"panels":[]}]},"httpPath":"/PaymentMethods"}],"content":{"contentType":"group","meta":{"name":"Payment Methods"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Payment Methods","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This is an informational resource endpoint that returns a list of all available payment "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/payment-processors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"processors"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/payment-processors/payment-methods/payment-methods-overview"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"methods"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"An org can have many method-processor combinations enabled. If there are multiple processors (PSPs) available for a payment method, one may be set to be the default processor for that method."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/PaymentMethods","summary":"Get payment methods and processors","prefix":{"name":"get","color":"get"},"badges":[],"link":"/payment-methods/getpaymentmethods","deprecated":false}]}]}]}]}},{"type":"group","label":"Source Connectors","link":"/api/payment-api-v2/source-connectors","routeSlug":"/api/payment-api-v2/source-connectors","items":[{"label":"Get available sources","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/source-connectors/getsourceconnectors","routeSlug":"/api/payment-api-v2/source-connectors/getsourceconnectors","metadata":{"seo":{"title":"Get available sources","description":"This endpoint returns the configured source connectors in the Salesforce org."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"GetSourceConnectors","name":"Get available sources","isWebhook":false,"pointer":"/paths/~1SourceConnector/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get available sources","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"This endpoint returns the configured source connectors in the Salesforce org."},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/SourceConnector","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"responseCodes":["200","400","422","500"],"pointer":"/SourceConnector","href":"source-connectors/getsourceconnectors","openApiOperationId":"GetSourceConnectors","summary":"Get available sources","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetSourceConnectorsSuccessResponse"}},"schemaId":"components/schemas/GetSourceConnectorsSuccessResponse"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unprocessable Entity: The message was well-formed, but could not be processed. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"}},"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1SourceConnector/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/GetSourceConnectorsSuccessResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetSourceConnectorsSuccessResponse"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/GetPaymentMethodsFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/source-connectors/getsourceconnectors"}],"panels":[]}]},"httpPath":"/SourceConnector"}],"content":{"contentType":"group","meta":{"name":"Source Connectors"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Source Connectors","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This is an informational resource endpoint that returns the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/source-connectors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"source connector"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" used in a specific Salesforce org. There is always a default source,"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"but an org can have more than one source connector enabled."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The source connector determines which payment-related objects FinDock needs to create and update in Salesforce when an action is initiated through the Payment API."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/SourceConnector","summary":"Get available sources","prefix":{"name":"get","color":"get"},"badges":[],"link":"/source-connectors/getsourceconnectors","deprecated":false}]}]}]}]}},{"type":"group","label":"Package Actions","link":"/api/payment-api-v2/package-actions","routeSlug":"/api/payment-api-v2/package-actions","items":[{"label":"Get details of package-specific actions","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/api/payment-api-v2/package-actions/getpackageactions","routeSlug":"/api/payment-api-v2/package-actions/getpackageactions","metadata":{"seo":{"title":"Get details of package-specific actions","description":"This endpoint returns a list of unique actions that specific to a given source connector or payment extension."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"GetPackageActions","name":"Get details of package-specific actions","isWebhook":false,"pointer":"/paths/~1PackageActions/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get details of package-specific actions","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"This endpoint returns a list of unique actions that specific to a given source connector or payment extension."},{"nodeType":"security","requirements":[{"schemes":[{"name":"Salesforce_Production","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]},{"schemes":[{"name":"Salesforce_Sandbox","scopes":["full"],"type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}]}]}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/PackageActions","servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Salesforce_Production","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]},{"schemes":[{"id":"Salesforce_Sandbox","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}],"scopes":["full"]}],"responseCodes":["200","400","422","500"],"pointer":"/PackageActions","href":"package-actions/getpackageactions","openApiOperationId":"GetPackageActions","summary":"Get details of package-specific actions","securityGroups":[{"Salesforce_Production":["full"]},{"Salesforce_Sandbox":["full"]}]},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"API was called successfully.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPackageActionsSuccessResponse"}},"schemaId":"components/schemas/GetPackageActionsSuccessResponse"},{"code":"400","description":"The message was well-formed, but could not be processed.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"},{"code":"422","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unprocessable Entity: The message was well-formed, but could not be processed. See "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/error-and-response-codes"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error and response codes"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for more information."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"}},"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"},{"code":"500","description":"Correct Request, but API call failed on an internal server error.","mediaType":"text/plain:","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}},"schemaId":"schema_6"}],"pointer":"/paths/~1PackageActions/get/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/GetPackageActionsSuccessResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPackageActionsSuccessResponse"}}},{"code":"400","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}},{"code":"422","schemaId":"components/schemas/GetPaymentMethodsFailedResponse422","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentMethodsFailedResponse422"}}},{"code":"500","schemaId":"schema_6","mediaTypes":["text/plain:"],"mediaTypeContent":{"text/plain:":{"schemaId":"schema_6"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/package-actions/getpackageactions"}],"panels":[]}]},"httpPath":"/PackageActions"}],"content":{"contentType":"group","meta":{"name":"Package Actions"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Package Actions","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Informational resource endpoint that returns the package actions possible and/or required for a certain Salesforce environment."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Package actions are additional actions that can be performed for a specific FinDock package, like a payment extension or source connector."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"These additional actions can be included in payment intent calls to the Payment API."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If package actions are available, please refer to the specific "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/payment-processors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"processor"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/source-connectors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"source connector"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" documentation for further information."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/source-connectors/how-gift-aid-works"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Gift Aid"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" package, for example, has"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/source-connectors/for-admins-and-sis-gift-aid-setup#using-the-payment-api-for-gift-aid-declarations"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"package actions for declarations"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/PackageActions","summary":"Get details of package-specific actions","prefix":{"name":"get","color":"get"},"badges":[],"link":"/package-actions/getpackageactions","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/PaymentIntentNewOneTime":{"id":"components/schemas/PaymentIntentNewOneTime","kind":"json-schema","title":"PaymentIntentNewOneTime","data":{"type":"object","description":"A payment intent message to create a one-time payment captured as an Installment record in Salesforce.","required":["SuccessURL","FailureURL","Payer","OneTime","PaymentMethod"],"properties":{"SuccessURL":{"type":"string","format":"url","description":"The URL the payer is redirected to when a payment has been completed successfully.","example":"https://hostdomain.com/success"},"FailureURL":{"type":"string","format":"url","description":"The URL the user is redirected to when a payment has failed or was cancelled.","example":"https://hostdomain.com/failure"},"RedirectURL":{"type":"string","format":"url","description":"The URL where the user should be redirected to so additional information can be provided to complete the payment.\nThis is primarily used for hosted payment forms of PSPs.\n","example":"https://redirect-hostdomain.com/checkout/payment-parameters"},"WebhookURL":{"type":"string","format":"url","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL where you want to receive "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/webhook-events-and-notifications"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook notifications"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" about the status of the payment."},"children":[]}]}]}],"example":"https://hostdomain.com/endpoint"},"Origin":{"type":"string","description":"The channel used to create the payment intent, such as a payment form on a webpage. This information can be used when building customized follow-up logic in Salesforce.","example":"Campaign payment form"},"CampaignId":{"type":"string","description":"Id of a Campaign record in Salesforce. When a valid value is passed, the campaign is linked to the installment or recurring payment object in Salesforce.\"","example":"7013X000001mAZbQAM"},"Payer":{"type":"object","description":"Information about the payer captured in a new or existing Account and/or Contact record.","anyOf":[{"$ref":"#/components/schemas/Account"},{"$ref":"#/components/schemas/Contact"}]},"OneTime":{"type":"object","description":"Value of the payment in the given currency.","required":["Amount"],"properties":{"Amount":{"type":"number","description":"The amount collected or disbursed.","example":10},"CurrencyISOCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A valid "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/iso-4217-currency-codes.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 4217 currency code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". May be required depending on the Salesforce org configuration."},"children":[]}]}]}],"example":"EUR"}}},"PaymentMethod":{"type":"object","description":"The payment processing details for the one-time payment.","required":["Name"],"properties":{"Name":{"type":"string","description":"Name of the payment method.","example":"CreditCard"},"Processor":{"type":"string","description":"Name of the FinDock package for the payment processor. If no processor is specified,\nFinDock uses the default processor configured for the payment method.\n","example":"PaymentHub-Stripe"},"Target":{"type":"string","description":"The merchant account that gets the money from the payment. If no target is provided,\nFinDock uses whichever target that is set as the default in the payment processor configuration.\n","example":"Stripe-Main-Account"},"Parameters":{"type":"object","description":"Additional parameters for the given payment method and processor combination.","example":{"locale":"en-GB"}}}},"Settings":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additional information on how the payment should be processed in Salesforce. Includes the source connector and additional parameters"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ProcessingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that can be used for "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"SourceConnector":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The name of the source connector to use for processing, e.g. 'PaymentHub', "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PaymentHub-for-NPSP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or 'FinDock-for-Fundraising'."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If no source connector is passed in the request, the default source connector set in the FinDock configuration is used."},"children":[]}]}]}],"example":"PaymentHub-for-NPSP"},"ProcessingType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Sub Type name of the Inbound Report which determines the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"setup which drives the data processing."},"children":[]}]}]}],"example":"CustomInboundReportSubType"}}},"SalesforceFields":{"type":"object","description":"The SalesforceFields block is used to pass and values for the given object in Salesforce. To find out which fields are available, check the Object Manager in the Salesforce Setup.\n","example":{"cpm__Campaign__c":"a070Y000005M7t6","cpm__Origin__c":"Online payment form"}},"PackageActions":{"type":"object","description":"Additional, package-specific actions to be performed with the payment intent.","example":{"PaymentHub-GiftAid":{"CreateGiftAidDeclaration":{"dateMade":"2025-01-15","startDate":"2025-02-01","firstName":"Test","lastName":"Donor","houseNameOrNumber":12,"postalCode":"L68 0AQ","acquisitionMethod":"Digital"}}}}}}},"components/schemas/PaymentIntentNewRecurring":{"id":"components/schemas/PaymentIntentNewRecurring","kind":"json-schema","title":"PaymentIntentNewRecurring","data":{"type":"object","description":"A payment intent message to create a new recurring payment in Salesforce. The record may be Recurring Payment, Recurring Donation, etc.\ndepending on the source connector.\n","required":["SuccessURL","FailureURL","Payer","Recurring","PaymentMethod"],"properties":{"SuccessURL":{"type":"string","format":"url","description":"The URL the payer is redirected to when a payment has been completed successfully.","example":"https://hostdomain.com/success"},"FailureURL":{"type":"string","format":"url","description":"The URL the user is redirected to when a payment has failed or was cancelled.","example":"https://hostdomain.com/failure"},"RedirectURL":{"type":"string","format":"url","description":"The URL where the user should be redirected to so additional information can be provided to complete the payment.\nThis is primarily used for hosted payment forms of PSPs.\n","example":"https://redirect-hostdomain.com/checkout/payment-parameters"},"WebhookURL":{"type":"string","format":"url","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL where you want to receive "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/webhook-events-and-notifications"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook notifications"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" about the status of the payment."},"children":[]}]}]}],"example":"https://hostdomain.com/endpoint"},"Origin":{"type":"string","description":"The channel used to create the payment intent, such as a payment form on a webpage. This information can be used when building customized follow-up logic in Salesforce.","example":"Campaign payment form"},"CampaignId":{"type":"string","description":"Id of a Campaign record in Salesforce. When a valid value is passed, the campaign is linked to the installment or recurring payment object in Salesforce.\"","example":"7013X000001mAZbQAM"},"Payer":{"type":"object","description":"Information about the payer captured in a new or existing Account and/or Contact record.","anyOf":[{"$ref":"#/components/schemas/Account"},{"$ref":"#/components/schemas/Contact"}]},"OneTime":{"type":"object","description":"One-time charge that may be required to set up and authorize the new recurring payment.","required":["Amount"],"properties":{"Amount":{"type":"number","description":"The initial amount to be collected once.","example":25}}},"Recurring":{"required":["Amount","Frequency","StartDate"],"properties":{"Amount":{"type":"number","description":"The amount to be collected at regular intervals.","example":10},"Frequency":{"type":"string","description":"The frequency with which installments are collected. e.g. 'Weekly', 'Monthly'. The formatting of the frequency options\ndepends on the source connector you provide in the payment intent message. Please adjust your values accordingly.\n","example":"Monthly"},"CurrencyISOCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A valid "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/iso-4217-currency-codes.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 4217 currency code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". May be required depending on the Salesforce org configuration."},"children":[]}]}]}],"example":"EUR"},"StartDate":{"type":"string","format":"date","description":"The first date the recurring payment is collected. Format is yyyy-mm-dd.","example":"2025-01-01"},"EndDate":{"type":"string","format":"date","description":"The last date the recurring payment is collected. Format is yyyy-mm-dd.","example":"2025-12-01"}}},"PaymentMethod":{"type":"object","description":"The payment processing details for the one-time payment.","required":["Name"],"properties":{"Name":{"type":"string","description":"Name of the payment method.","example":"CreditCard"},"Processor":{"type":"string","description":"Name of the FinDock package for the payment processor. If no processor is specified,\nFinDock uses the default processor configured for the payment method.\n","example":"PaymentHub-Stripe"},"Target":{"type":"string","description":"The merchant account that gets the money from the payment. If no target is provided,\nFinDock uses whichever target that is set as the default in the payment processor configuration.\n","example":"Stripe-Main-Account"},"Parameters":{"type":"object","description":"Additional parameters for the given payment method and processor combination.","example":{"locale":"en-GB","description":"Monthly membership fee"}}}},"Settings":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additional information on how the payment should be processed in Salesforce. Includes the source connector and additional parameters"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ProcessingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that can be used for "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"SourceConnector":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The name of the source connector to use for processing, e.g. 'PaymentHub', "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PaymentHub-for-NPSP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or 'FinDock-for-Fundraising'."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If no source connector is passed in the request, the default source connector set in the FinDock configuration is used."},"children":[]}]}]}],"example":"PaymentHub-for-NPSP"},"ProcessingType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Sub Type name of the Inbound Report which determines the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"setup which drives the data processing."},"children":[]}]}]}],"example":"CustomInboundReportSubType"}}},"SalesforceFields":{"type":"object","description":"The SalesforceFields block is used to pass and values for the given object in Salesforce. To find out which fields are available, check the Object Manager in the Salesforce Setup.\n","example":{"cpm__Campaign__c":"a070Y000005M7t6","cpm__Origin__c":"Online payment form"}},"PackageActions":{"type":"object","description":"Additional, package-specific actions to be performed with the payment intent.","example":{"PaymentHub-GiftAid":{"CreateGiftAidDeclaration":{"dateMade":"2025-01-15","startDate":"2025-02-01","firstName":"Test","lastName":"Donor","houseNameOrNumber":12,"postalCode":"L68 0AQ","acquisitionMethod":"Digital"}}}}}}},"components/schemas/PaymentIntentPayInstallment":{"id":"components/schemas/PaymentIntentPayInstallment","kind":"json-schema","title":"PaymentIntentPayInstallment","data":{"type":"object","description":"A payment intent message to pay some or all of the open amount of an existing Installment record in Salesforce.\n","required":["SuccessURL","FailureURL","Payer","OneTime","PaymentMethod"],"properties":{"SuccessURL":{"type":"string","format":"url","description":"The URL the payer is redirected to when a payment has been completed successfully.","example":"https://hostdomain.com/success"},"FailureURL":{"type":"string","format":"url","description":"The URL the user is redirected to when a payment has failed or was cancelled.","example":"https://hostdomain.com/failure"},"RedirectURL":{"type":"string","format":"url","description":"The URL where the user should be redirected to so additional information can be provided to complete the payment.\nThis is primarily used for hosted payment forms of PSPs.\n","example":"https://redirect-hostdomain.com/checkout/payment-parameters"},"WebhookURL":{"type":"string","format":"url","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL where you want to receive "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/webhook-events-and-notifications"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook notifications"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" about the status of the payment."},"children":[]}]}]}],"example":"https://hostdomain.com/endpoint"},"Origin":{"type":"string","description":"The channel used to create the payment intent, such as a payment form on a webpage. This information can be used when building customized follow-up logic in Salesforce.","example":"Campaign payment form"},"CampaignId":{"type":"string","description":"Id of a Campaign record in Salesforce. When a valid value is passed, the campaign is linked to the installment or recurring payment object in Salesforce.\"","example":"7013X000001mAZbQAM"},"Payer":{"type":"object","description":"Information about the payer captured in a new or existing Account and/or Contact record.","anyOf":[{"$ref":"#/components/schemas/Account"},{"$ref":"#/components/schemas/Contact"}]},"OneTime":{"type":"object","description":"Identification of the installment to be paid. The amount to pay is determined by the Amount Open\nfield on the Installment record.\n","required":["Id"],"properties":{"Id":{"type":"string","description":"The record Id or GUID of the installment.","example":"a083X00001aUMCnQAO"}}},"PaymentMethod":{"type":"object","description":"The payment processing details for the one-time payment.","required":["Name"],"properties":{"Name":{"type":"string","description":"Name of the payment method.","example":"CreditCard"},"Processor":{"type":"string","description":"Name of the FinDock package for the payment processor. If no processor is specified,\nFinDock uses the default processor configured for the payment method.\n","example":"PaymentHub-Stripe"},"Target":{"type":"string","description":"The merchant account that gets the money from the payment. If no target is provided,\nFinDock uses whichever target that is set as the default in the payment processor configuration.\n","example":"Stripe-Main-Account"},"Parameters":{"type":"object","description":"Additional parameters for the given payment method and processor combination.","example":{"locale":"en-GB","description":"Monthly membership fee"}}}},"Settings":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additional information on how the payment should be processed in Salesforce. Includes the source connector and additional parameters"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ProcessingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that can be used for "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"SourceConnector":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The name of the source connector to use for processing, e.g. 'PaymentHub', "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PaymentHub-for-NPSP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or 'FinDock-for-Fundraising'."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If no source connector is passed in the request, the default source connector set in the FinDock configuration is used."},"children":[]}]}]}],"example":"PaymentHub-for-NPSP"},"ProcessingType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Sub Type name of the Inbound Report which determines the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"setup which drives the data processing."},"children":[]}]}]}],"example":"CustomInboundReportSubType"}}},"SalesforceFields":{"type":"object","description":"The SalesforceFields block is used to pass and values for the given object in Salesforce. To find out which fields are available, check the Object Manager in the Salesforce Setup.\n","example":{"cpm__Campaign__c":"a070Y000005M7t6","cpm__Origin__c":"Online payment form"}},"PackageActions":{"type":"object","description":"Additional, package-specific actions to be performed with the payment intent.","example":{"PaymentHub-GiftAid":{"CreateGiftAidDeclaration":{"dateMade":"2025-01-15","startDate":"2025-02-01","firstName":"Test","lastName":"Donor","houseNameOrNumber":12,"postalCode":"L68 0AQ","acquisitionMethod":"Digital"}}}}}}},"components/schemas/PaymentIntentUpdateRecurring":{"id":"components/schemas/PaymentIntentUpdateRecurring","kind":"json-schema","title":"PaymentIntentUpdateRecurring","data":{"type":"object","description":"A payment intent message to update an existing recurring payment in Salesforce. The record may be Recurring Payment, Recurring Donation, etc.\ndepending on the source connector.\n","required":["SuccessURL","FailureURL","Recurring","PaymentMethod"],"properties":{"SuccessURL":{"type":"string","format":"url","description":"The URL the payer is redirected to when a payment has been completed successfully.","example":"https://hostdomain.com/success"},"FailureURL":{"type":"string","format":"url","description":"The URL the user is redirected to when a payment has failed or was cancelled.","example":"https://hostdomain.com/failure"},"RedirectURL":{"type":"string","format":"url","description":"The URL where the user should be redirected to so additional information can be provided to complete the payment.\nThis is primarily used for hosted payment forms of PSPs.\n","example":"https://redirect-hostdomain.com/checkout/payment-parameters"},"WebhookURL":{"type":"string","format":"url","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL where you want to receive "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/webhook-events-and-notifications"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook notifications"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" about the status of the payment."},"children":[]}]}]}],"example":"https://hostdomain.com/endpoint"},"OneTime":{"type":"object","description":"One-time charge that may be required to authorize the updated recurring payment method.","required":["Amount"],"properties":{"Amount":{"type":"number","description":"An initial amount to be collected once.","example":1}}},"Recurring":{"required":["Id"],"properties":{"Id":{"type":"string","description":"The record Id or GUID of the recurring payment.","example":"a0V3X00000S7BuCUAV"}}},"PaymentMethod":{"type":"object","description":"The payment processing details for the one-time payment.","required":["Name"],"properties":{"Name":{"type":"string","description":"Name of the payment method.","example":"CreditCard"},"Processor":{"type":"string","description":"Name of the FinDock package for the payment processor. If no processor is specified,\nFinDock uses the default processor configured for the payment method.\n","example":"PaymentHub-Stripe"},"Target":{"type":"string","description":"The merchant account that gets the money from the payment. If no target is provided,\nFinDock uses whichever target that is set as the default in the payment processor configuration.\n","example":"Stripe-Main-Account"},"Parameters":{"type":"object","description":"Additional parameters for the given payment method and processor combination.","example":{"locale":"en-GB","description":"Monthly membership fee"}}}}}}},"components/schemas/PaymentIntentSuccessResponse":{"id":"components/schemas/PaymentIntentSuccessResponse","kind":"json-schema","title":"PaymentIntentSuccessResponse","data":{"type":"object","properties":{"Id":{"type":"string","description":"The Payment Intent Id. Can also be found on the Inbound Report record in Salesforce.","example":"pi_1hubybk7nh45rvbt6"},"PaymentMethod":{"properties":{"Name":{"example":"CreditCard"},"Processor":{"example":"PaymentHub-Stripe"},"Target":{"example":"Stripe-Main"},"Parameters":{"example":{"description":"Monthly membership fee"}}}},"Settings":{"properties":{"SourceConnector":{"example":"PaymentHub-for-NPSP"}}},"RedirectURL":{"example":"https://redirect-hostdomain.com/checkout/payment-parameters"}}}},"components/schemas/PaymentIntentFailedResponse422":{"id":"components/schemas/PaymentIntentFailedResponse422","kind":"json-schema","title":"PaymentIntentFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"Contact error: Required fields are missing: [LastName]"}}}},"components/schemas/GetPaymentIntentOneTimeSuccessResponse":{"id":"components/schemas/GetPaymentIntentOneTimeSuccessResponse","kind":"json-schema","title":"GetPaymentIntentOneTimeSuccessResponse","data":{"type":"object","properties":{"Id":{"description":"Payment intent Id from the inbound report.","type":"string","example":"pi_1hubybk7nh45rvbt6"},"Status":{"description":"Current status of the payment intent inbound report.","type":"string","example":"Matched"},"Payer":{"description":"Contact and/or Account record details for the payer that can be used for followup actions.","type":"object","properties":{"Contact":{"properties":{"Url":{"example":"/services/data/v65.0/sobjects/Contact/a0P3X00000WjR8AUAV"},"Type":{"example":"Contact"},"Id":{"example":"a0P3X00000WjR8AUAV"},"Name":{"example":"Test Payer"}}},"Account":{"properties":{"Url":{"example":"/services/data/v65.0/sobjects/Account/0011j00000itNdlAAE"},"Type":{"example":"Account"},"Id":{"example":"0011j00000itNdlAAE"},"Name":{"example":"Payer Family"}}}}},"OneTime":{"description":"Details about the installment related to the payment intent inbound report.","type":"object","properties":{"Url":{"example":"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001aUMCnQAO"},"Type":{"example":"cpm__Installment__c"},"Id":{"example":"a083X00001aUMCnQAO"},"Status":{"example":"Collected"}}}}}},"components/schemas/GetPaymentIntentRecurringSuccessResponse":{"id":"components/schemas/GetPaymentIntentRecurringSuccessResponse","kind":"json-schema","title":"GetPaymentIntentRecurringSuccessResponse","data":{"type":"object","properties":{"Id":{"description":"Payment intent Id from the inbound report.","type":"string","example":"pi_1hubybk7nh45rvbt6"},"Status":{"description":"Current status of the payment intent inbound report.","type":"string","example":"Matched"},"Payer":{"description":"Contact and/or Account record details for the payer that can be used for followup actions.","type":"object","properties":{"Contact":{"properties":{"Url":{"example":"/services/data/v65.0/sobjects/Contact/a0P3X00000WjR8AUAV"},"Type":{"example":"Contact"},"Id":{"example":"a0P3X00000WjR8AUAV"},"Name":{"example":"Test Payer"}}},"Account":{"properties":{"Url":{"example":"/services/data/v65.0/sobjects/Account/0011j00000itNdlAAE"},"Type":{"example":"Account"},"Id":{"example":"0011j00000itNdlAAE"},"Name":{"example":"Payer Family"}}}}},"Recurring":{"description":"Details about the installment related to the payment intent inbound report.","type":"object","properties":{"Url":{"example":"/services/data/v65.0/sobjects/cpm__Recurring_Payment__c/a0V3X00000RKBZmUAP"},"Type":{"example":"cpm__Recurring_Payment__c"},"Id":{"example":"a0V3X00000RKBZmUAP"}}}}}},"components/schemas/GetPaymentIntentFailedResponse422":{"id":"components/schemas/GetPaymentIntentFailedResponse422","kind":"json-schema","title":"GetPaymentIntentFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"Payment intent not found: Please check that the supplied Id value is correct."}}}},"components/schemas/GetInstallmentSuccessResponse":{"id":"components/schemas/GetInstallmentSuccessResponse","kind":"json-schema","title":"GetInstallmentSuccessResponse","data":{"type":"object","description":"Details about an installment, which represents a one-time payment in Salesforce.","properties":{"Id":{"type":"string","description":"The Salesforce record Id of the installment.","example":"a083X00001aUMCnQAO"},"GUID":{"type":"string","description":"The Salesforce GUID of the installment.","example":"sdfasdf-asfads-242134-adsfadf-23423"},"Url":{"type":"string","description":"The Salesforce URL of the installment.","example":"/services/data/63.0/sobjects/cpm__Installment__c/a083X00001aUMCnQAO"},"Type":{"type":"string","description":"The Salesforce object type.","example":"cpm__Installment__c"},"Status":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The status of the installment. For more information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/data-model/installment#status-and-counters"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"installment status and counters"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"enum":["Cancelled","Collected","Failed","New","Outstanding","Paid","Pending","Partially paid","Pending Processing","Pending recollection","Refunded","Rejected","Reversed"],"example":"Collected"},"Amount":{"type":"number","description":"The original amount to be collected.","example":10},"AmountOpen":{"type":"number","description":"The amount still to be collected, i.e. original amount minus any already paid amounts.","example":0},"Target":{"description":"The name of the target, a bank account or PSP merchant account, specified for the installment.","example":"PRIMARY-BANK-ACCOUNT"},"RecordTypeName":{"type":"string","description":"The record type of the installment for incoming payment and Payable for outgoing payments.","example":"Receivable"},"PayUrl":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL that can be used to pay this installment. This can be a "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/payments/configuring-findock-paylinks"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PayLinks"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/payment-processors/using-tikkie#tikkie-url.md"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Tikkie URL"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"https://link.dev.findock.com/pay/3xxxxmuai2/8897b4da-e48a-7ff3-90dd-ecb65094802c"},"PayLinkPage":{"type":"string","description":"The slug for the PayLink URL if multiple PayLinks pages are configured in the org.","example":"pageAbcSlug"},"PaymentProcessor":{"description":"The name of the payment processor package used to process the installment.","example":"PaymentHub-SEPA"},"PaymentMethod":{"description":"The name of the payment method used by the installment.","example":"DirectDebit"},"PaymentIntentId":{"description":"The Id of the payment intent that created the installment.","example":"pi_1hubybk7nh45rvbt6"},"Payments":{"$ref":"#/components/schemas/Payment"}}}},"components/schemas/GetInstallmentFailedResponse422":{"id":"components/schemas/GetInstallmentFailedResponse422","kind":"json-schema","title":"GetInstallmentFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"Installment not found: Please check that the supplied Id value is correct."}}}},"components/schemas/GetRecurringSuccessResponse":{"id":"components/schemas/GetRecurringSuccessResponse","kind":"json-schema","title":"GetRecurringSuccessResponse","data":{"type":"object","description":"Details about an existing recurring payment.","properties":{"Url":{"type":"string","description":"The Salesforce URL of the recurring payment.","example":"/services/data/v65.0/sobjects/cpm__Recurring_Payment__c/a0V3X00000RKBZmUAP"},"Type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The type of recurring payment object used in Salesforce. This can be the FinDock object "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cpm__Recurring_Payment__c"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or an object from a source package like Recurring Donation."},"children":[]}]}]}],"example":"cpm__Recurring_Payment__c"},"SetupUrl":{"type":"string","description":"The URL to a payment setup page where the payer can update how the recurring payment will be paid.","example":"https://link.dev.findock.com/pay/3xxxxmuai2/8897b4da-e48a-7ff3-90dd-ecb65094802c"},"PayLinkPage":{"type":"string","description":"The slug for the payment setup page when multiple PayLinks pages are configured in the org.","example":"pageAbcSlug"},"PaymentProcessor":{"description":"The name of the payment processor package used to process the recurring payment.","example":"PaymentHub-SEPA"},"PaymentMethod":{"description":"The name of the payment method used by the recurring payment.","example":"DirectDebit"},"Id":{"type":"string","description":"The unique ID of the recurring payment in Salesforce.","example":"a0V3X00000RKBZmUAP"},"GUID":{"type":"string","description":"The Salesforce GUID of the recurring payment.","example":"sdfasdf-asfads-242134-adsfadf-23423"},"Amount":{"type":"number","description":"The amount to be collected at a specific frequency.","example":25},"CurrencyISOCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A valid "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/iso-4217-currency-codes.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 4217 currency code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". May be required depending on the Salesforce org configuration."},"children":[]}]}]}],"example":"EUR"},"Frequency":{"type":"string","description":"The frequency with which installments are collected. e.g. 'Weekly', 'Monthly'. NOTE: The formatting of the frequency options depends on the source connector you provide in the request. Please adjust your values accordingly.","example":"Monthly"},"RecordTypeName":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Salesforce "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/#salesforce-objects-recordtypes-and-fields"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"RecordType"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of the recurring payment."},"children":[]}]}]}],"example":"Subscription"},"StartDate":{"type":"string","format":"date","description":"The first date the recurring payment is collected. Format is yyyy-mm-dd.","example":"2025-01-01"},"EndDate":{"type":"string","format":"date","description":"The last date the recurring payment is collected. Format is yyyy-mm-dd.","example":"2025-12-01"},"Description":{"type":"string","description":"The text from the description on the recurring payment.","example":"Monthly subscription payment"},"SourceConnector":{"type":"string","description":"The source of the recurring payment data.","example":"PaymentHub"}}}},"components/schemas/GetRecurringFailedResponse422":{"id":"components/schemas/GetRecurringFailedResponse422","kind":"json-schema","title":"GetRecurringFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"Recurring record not found: Please check that the supplied Id value is correct."}}}},"components/schemas/GetPaymentMethodsSuccessResponse":{"id":"components/schemas/GetPaymentMethodsSuccessResponse","kind":"json-schema","title":"GetPaymentMethodsSuccessResponse","data":{"type":"object","description":"A list of available payment methods and the configured payment processors that can use those methods.","properties":{"PaymentMethods":{"type":"object","properties":{"Name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The name of the payment method, e.g. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DirectDebit"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CreditCard"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Ideal"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"DirectDebit"},"Processors":{"type":"array","description":"A list of the payment processors that can be used to process payments with this payment method. Each entry includes details about\nthe processor-method combination, like whether it supports recurring payments and additional parameters.\n","items":{"$ref":"#/components/schemas/PaymentProcessor"}}}}}}},"components/schemas/GetPaymentMethodsFailedResponse422":{"id":"components/schemas/GetPaymentMethodsFailedResponse422","kind":"json-schema","title":"GetPaymentMethodsFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"An unexpected error occurred. Please contact FinDock Support for assistance."}}}},"components/schemas/GetSourceConnectorsSuccessResponse":{"id":"components/schemas/GetSourceConnectorsSuccessResponse","kind":"json-schema","title":"GetSourceConnectorsSuccessResponse","data":{"type":"object","description":"A list of available sources.","properties":{"SourceConnectors":{"type":"array","items":{"$ref":"#/components/schemas/SourceConnector"}}}}},"components/schemas/GetSourceConnectorsFailedResponse422":{"id":"components/schemas/GetSourceConnectorsFailedResponse422","kind":"json-schema","title":"GetSourceConnectorsFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"An unexpected error occurred. Please contact FinDock Support for assistance."}}}},"components/schemas/GetPackageActionsSuccessResponse":{"id":"components/schemas/GetPackageActionsSuccessResponse","kind":"json-schema","title":"GetPackageActionsSuccessResponse","data":{"type":"object","properties":{"ResponseCode":{"type":"string","enum":["001"]},"IsSuccess":{"type":"boolean","enum":[true]},"PackageActions":{"type":"array","description":"A list of package actions and details about the parameters for each named action.","example":[{"PackageName":"PaymentHub-GiftAid","actions":[{"Parameters":[{"required":true,"name":"dateMade","description":"Date made of the Gift Aid Declaration","dataType":"Date"},{"name":"startDate","description":"Start date of the Gift Aid Declaration","dataType":"Date"},{"name":"endDate","description":"End date of the Gift Aid Declaration","dataType":"Date"},{"name":"confirmationDate","description":"Confirmation Date of the Gift Aid Declaration","dataType":"Date"},{"name":"acquisitionMethod","description":"Acquisition Method","dataType":"String"},{"name":"title","description":"Title","dataType":"String"},{"name":"firstName","description":"First Name","dataType":"String"},{"name":"lastName","description":"Last Name","dataType":"String"},{"required":true,"name":"houseNameOrNumber","description":"Housename or Number","dataType":"String"},{"required":true,"name":"postalCode","description":"Postal Code","dataType":"String"},{"required":true,"name":"overseas","description":"Overseas","dataType":"Boolean"}],"name":"CreateGiftAidDeclaration"},{"Parameters":[{"required":true,"name":"closeDate","description":"Close date of the Gift Aid Declaration","dataType":"Date"},{"name":"closeReason","description":"Close Reason","dataType":"String"},{"name":"comments","description":"Comments","dataType":"String"}],"name":"CloseAllGiftAidDeclarations"}]}]}}}},"components/schemas/GetPackageActionsFailedResponse422":{"id":"components/schemas/GetPackageActionsFailedResponse422","kind":"json-schema","title":"GetPackageActionsFailedResponse422","data":{"type":"object","required":["error_code","error_message"],"properties":{"error_code":{"type":"integer","format":"int32","example":999},"error_message":{"type":"string","example":"An unexpected error occurred. Please contact FinDock Support for assistance."}}}},"components/schemas/PaymentProcessor":{"id":"components/schemas/PaymentProcessor","kind":"json-schema","title":"PaymentProcessor","data":{"type":"object","properties":{"Name":{"type":"string","description":"The name of the payment processor.","example":"PaymentHub-SEPA"},"IsDefault":{"type":"boolean","description":"Indicates whether this is the default payment processor for the payment method. If no payment processor is passed in a payment intent message, the default\nprocessor is used to process payments with this method.\n","example":true},"Targets":{"type":"array","description":"The names of all targets (bank accounts) that are configured for this payment processor. Currently only\ntargets for native FinDock processors are returned.\n","example":[{"publicTarget":"PaymentHub-SEPA","Name":"Main SEPA Account"},{"publicTarget":"PaymentHub-SEPA","Name":"Region One SEPA Account"},{"publicTarget":"PaymentHub-SEPA","Name":"Region Two SEPA Account"}]},"SupportsRecurring":{"type":"boolean","description":"Indicates if the payment processor supports recurring payments with this payment method.","example":true},"InitialPaymentOnRecurring":{"type":"string","description":"Indicates whether the payment processor supports or requires an initial payment (OneTime object) for a recurring payment payment intent.\nThis field replaces RecurringRequiresInitialPayment.\n","enum":["required","optional","unsupported"],"example":"unsupported"},"RecurringRequiresInitialPayment":{"type":"boolean","description":"Old way to indicate of the payment processor requires an initial payment (OneTime object) for a recurring payment. Replaced by InitialPaymentOnRecurring.","example":false,"deprecated":true},"Parameters":{"type":"array","description":"API parameters available for the payment processor and method combination.","items":{"type":"object","properties":{"Required":{"type":"boolean","description":"Indicates if the parameter is required.","example":true},"Name":{"type":"string","description":"The name of the parameter.","example":"iban"},"Description":{"type":"string","description":"A description of the purpose of the parameter.","example":"The IBAN of the payer's bank account."},"DataType":{"type":"string","description":"The data type of the parameter.","example":"String"}}}},"image":{"type":"object","description":"URL to payment method logo that can used in front-end applications.","properties":{"svg":{"example":"https://external.findock.com/icon/payment-methods/sepadirectdebit.svg"}}}}}},"components/schemas/SourceConnector":{"id":"components/schemas/SourceConnector","kind":"json-schema","title":"SourceConnector","data":{"type":"object","description":"Source connector that can be used to process payment data in Salesforce.","properties":{"Name":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The name of the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/source-connectors"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"source connector"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" used to register one-time and recurring payments, e.g. PaymentHub, FinDock-for-NPSP or FinDock-for-Fundraising."},"children":[]}]}]}],"example":"FinDock-for-Fundraising"},"PrettyName":{"type":"string","description":"The pretty name of the source connector package.","example":"Fundraising"},"IsDefault":{"type":"boolean","description":"Indicates if this is the default source connector. If no source connector is passed in the request, this source connector is used.","example":true}}}},"components/schemas/Contact":{"id":"components/schemas/Contact","kind":"json-schema","title":"Contact","data":{"type":"object","properties":{"Id":{"type":"string","description":"The unique GUID or Salesforce ID of the Contact record.","example":"0031j00000baD73AAE"},"SalesforceFields":{"type":"object","example":{"FirstName":"Test","LastName":"Payment","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"012-3456789"}}}}},"components/schemas/Account":{"id":"components/schemas/Account","kind":"json-schema","title":"Account","data":{"type":"object","properties":{"Id":{"type":"string","description":"The unique GUID or Salesforce ID of the Account record.","example":"0011j00000itNdlAAE"},"RecordTypeName":{"type":"string","description":"The Salesforce record type of the Account record.","example":"Household"},"SalesforceFields":{"example":{"Name":"Payment Family","BillingStreet":"Any Street","BillingCity":"Any City","BillingPostalCode":"00000"}}}}},"components/schemas/Payment":{"id":"components/schemas/Payment","kind":"json-schema","title":"Payment","data":{"type":"object","description":"A cash movement related to an installment in Salesforce.","properties":{"Id":{"type":"string","description":"The Salesforce record Id of the Payment record.\"","example":"a0R3X00000V20tbUAB"},"Url":{"type":"string","description":"The Salesforce URL to the Payment record.","example":"/services/data/v65.0/sobjects/cpm__Payment__c/a0R3X00000V20tbUAB"},"Type":{"type":"string","description":"The Salesforce object type.","example":"cpm__Payment__c"},"Target":{"description":"The name of the target, a bank account or PSP merchant account, specified for the installment.","example":"PRIMARY-BANK-ACCOUNT"},"PaymentProcessor":{"description":"The name of the payment processor package used to process the installment.","example":"PaymentHub-SEPA"},"PaymentMethod":{"description":"The name of the payment method used by the installment.","example":"DirectDebit"},"CollectionDate":{"type":"string","description":"The date on which the payment transaction was completed.","example":"2025-02-03"},"Amount":{"type":"number","description":"The amount of the payment transaction.","example":25}}}},"components/schemas/PaymentIntent":{"id":"components/schemas/PaymentIntent","kind":"json-schema","title":"PaymentIntent","data":{"x-tags":["Payment Intent"],"type":"object","description":"Full range of content supported by POST actions to the PaymentIntent endpoint.","properties":{"Id":{"type":"string","description":"The Payment Intent Id of the Installment record you want to query. The Id can also be found on the related Inbound Report record.","example":"pi_1hubybk7nh45rvbt6"},"Status":{"type":"string","description":"The processing status of the inbound report for the queried payment intent.","example":"Matched"},"IdempotencyKey":{"type":"string","description":"The Payment API supports idempotency for safely retrying requests without accidentally performing the same operation twice.\nThis is useful when an API call is disrupted in transit and you do not receive a response. An idempotency key is a unique\nvalue generated by the client which the server uses to recognize subsequent retries of the same request. How you create\nunique keys is up to you, but we suggest using V4 UUIDs, or another random string with enough entropy to avoid collisions.\n","example":"1hubybk7nh45rvbt6"},"SuccessURL":{"type":"string","format":"url","description":"The URL the payer is redirected to when a payment has been completed successfully.","example":"https://hostdomain.com/success"},"FailureURL":{"type":"string","format":"url","description":"The URL the user is redirected to when a payment has failed or was cancelled.","example":"https://hostdomain.com/failure"},"RedirectURL":{"type":"string","format":"url","description":"The URL where the user should be redirected to so additional information can be provided to complete the payment.\nThis is primarily used for hosted payment forms of PSPs.\n","example":"https://redirect-hostdomain.com/checkout/payment-parameters"},"WebhookURL":{"type":"string","format":"url","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL where you want to receive "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/webhook-events-and-notifications"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"webhook notifications"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" about the status of the payment."},"children":[]}]}]}],"example":"https://hostdomain.com/endpoint"},"Origin":{"type":"string","description":"The channel used to create the payment intent, such as a payment form on a webpage. This information can be used when building customized follow-up logic in Salesforce.","example":"Campaign payment form"},"CampaignId":{"type":"string","description":"Id of a Campaign record in Salesforce. When a valid value is passed, the campaign is linked to the installment or recurring payment object in Salesforce.\"","example":"7013X000001mAZbQAM"},"Payer":{"type":"object","description":"Information about the payer captured in a new or existing Account and/or Contact record.","anyOf":[{"$ref":"#/components/schemas/Account"},{"$ref":"#/components/schemas/Contact"}]},"OneTime":{"type":"object","description":"Details for a new one-time payment. If paying an existing one-time payment (installment), only Id is needed.","properties":{"Amount":{"type":"number","description":"The amount collected (or disbursed).","example":10},"CurrencyISOCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A valid "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/iso-4217-currency-codes.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 4217 currency code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". May be required depending on the Salesforce org configuration."},"children":[]}]}]}],"example":"EUR"},"Id":{"type":"string","description":"The record Id or GUID of the existing installment to pay.","example":"a083X00001aUMCnQAO"},"SalesforceFields":{"type":"object","description":"This SalesforceFields block is used to pass fields and values on the Installment object in Salesforce.\nTo find out which fields are available, check the Object Manager in the Salesforce Setup.\n","example":{"cpm__any_findock_or_package_field__c":"Lorem Ipsum Dolor sit amet","any_custom_object_link__c":"7010Y000000dDSQ"}}}},"Recurring":{"type":"object","description":"The recurring block contains details for creating a new recurring payment or updated an existing one based on an Id.","properties":{"Amount":{"type":"number","description":"The amount to be collected at regular intervals.","example":10},"Frequency":{"type":"string","description":"The frequency with which installments are collected. e.g. 'Weekly', 'Monthly'. The formatting of the frequency options\ndepends on the source connector you provide in the payment intent message. Please adjust your values accordingly.\n","example":"Monthly"},"CurrencyISOCode":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"A valid "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://www.iso.org/iso-4217-currency-codes.html"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"ISO 4217 currency code"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". May be required depending on the Salesforce org configuration."},"children":[]}]}]}],"example":"EUR"},"StartDate":{"type":"string","format":"date","description":"The first date the recurring payment is collected. Format is yyyy-mm-dd.","example":"2025-01-01"},"EndDate":{"type":"string","format":"date","description":"The last date the recurring payment is collected. Format is yyyy-mm-dd.","example":"2025-12-01"},"Id":{"type":"string","description":"The record Id or GUID of the recurring payment to update.","example":"a0V3X00000S7BuCUAV"},"SalesforceFields":{"type":"object","description":"This SalesforceFields block is used to pass fields and values on the recurring object in Salesforce.\nTo find out which fields are available, check the Object Manager in the Salesforce Setup.\n","example":{"cpm__any_findock_or_package_field__c":"Lorem Ipsum Dolor sit amet","any_custom_object_link__c":"7010Y000000dDSQ"}}}},"PaymentMethod":{"type":"object","description":"The payment processing details for the one-time payment.","properties":{"Name":{"type":"string","description":"Name of the payment method.","example":"CreditCard"},"Processor":{"type":"string","description":"Name of the FinDock package for the payment processor. If no processor is specified,\nFinDock uses the default processor configured for the payment method.\n","example":"PaymentHub-Stripe"},"Target":{"type":"string","description":"The merchant account that gets the money from the payment. If no target is provided,\nFinDock uses whichever target that is set as the default in the payment processor configuration.\n","example":"Stripe-Main-Account"},"Parameters":{"type":"object","description":"Additional parameters for the given payment method and processor combination. For details, please\nrefer to processor-specific configuration articles.\n","example":{"locale":"en-GB","description":"Monthly membership fee"}}}},"Settings":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Additional information on how the payment should be processed in Salesforce. Includes the source connector and additional parameters"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"like "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ProcessingType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that can be used for "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"SourceConnector":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The name of the source connector to use for processing, e.g. 'PaymentHub', "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PaymentHub-for-NPSP"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or 'FinDock-for-Fundraising'."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If no source connector is passed in the request, the default source connector set in the FinDock configuration is used."},"children":[]}]}]}],"example":"PaymentHub-for-NPSP"},"ProcessingType":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Sub Type name of the Inbound Report which determines the "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/docs/reconciliation/what-is-guided-matching"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Guided Matching"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"setup which drives the data processing."},"children":[]}]}]}],"example":"CustomInboundReportSubType"}}},"SalesforceFields":{"type":"object","description":"This SalesforceFields block is used to pass fields and values on the Installment object in Salesforce.\nTo find out which fields are available, check the Object Manager in the Salesforce Setup.\n","example":{"cpm__Campaign__c":"a070Y000005M7t6","cpm__Origin__c":"Online payment form"}},"PackageActions":{"type":"object","description":"Additional, package-specific actions to be performed with the payment intent.","example":{"PaymentHub-GiftAid":{"CreateGiftAidDeclaration":{"dateMade":"2025-01-15","startDate":"2025-02-01","title":"Mr.","firstName":"Test","lastName":"Donor","houseNameOrNumber":12,"postalCode":"L68 0AQ","acquisitionMethod":"Digital"}}}}}}},"schema_5":{"kind":"json-schema","data":{"oneOf":[{"$ref":"#/components/schemas/PaymentIntentNewOneTime"},{"$ref":"#/components/schemas/PaymentIntentNewRecurring"},{"$ref":"#/components/schemas/PaymentIntentPayInstallment"},{"$ref":"#/components/schemas/PaymentIntentUpdateRecurring"}]},"id":"schema_5"},"schema_6":{"kind":"json-schema","data":{"type":"string"},"id":"schema_6"},"schema_7":{"kind":"json-schema","data":{"type":"string","example":"pi_1hubybk7nh45rvbt6"},"id":"schema_7"},"schema_8":{"kind":"json-schema","data":{"oneOf":[{"$ref":"#/components/schemas/GetPaymentIntentOneTimeSuccessResponse"},{"$ref":"#/components/schemas/GetPaymentIntentRecurringSuccessResponse"}]},"id":"schema_8"},"schema_9":{"kind":"json-schema","data":{"type":"string","example":"a083X00001aUMCnQAO"},"id":"schema_9"}},"exampleStore":{"components/examples/BasicOneTime":{"id":"components/examples/BasicOneTime","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50}},"description":"A simple payment intent payload for a one-time payment with minimum required information."},"components/examples/BasicRecurring":{"id":"components/examples/BasicRecurring","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01"}},"description":"A simple payment intent payload for a recurring payment with minimum required information."},"components/examples/BasicRecurringWithInitialPayment":{"id":"components/examples/BasicRecurringWithInitialPayment","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"CreditCard","Processor":"PaymentHub-Stripe","Target":"Stripe-Main"},"OneTime":{"Amount":25},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01"}},"description":"A payment intent payload for a recurring payment that includes an initial one-time charge."},"components/examples/BasicPayExistingInstallmentWithId":{"id":"components/examples/BasicPayExistingInstallmentWithId","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Id":"a083X00001aUMCnQAO"}},"description":"A payment payload intent for paying an existing installment using the installment record Id for reference."},"components/examples/BasicPayExistingInstallmentWithGUID":{"id":"components/examples/BasicPayExistingInstallmentWithGUID","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Id":"sdfasdf-asfads-242134-adsfadf-23423"}},"description":"A simple payment intent payload for paying an existing installment using the installment GUID for reference."},"components/examples/AdvancedWithWebhook":{"id":"components/examples/AdvancedWithWebhook","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50},"WebhookURL":"https://hostdomain.com/api/endpoint"},"description":"A payment intent payload for a one-time payment with a URL for webhook notifications."},"components/examples/AdvancedWithOverrideProcessor":{"id":"components/examples/AdvancedWithOverrideProcessor","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Processor":"PaymentHub-SEPA"},"OneTime":{"Amount":50}},"description":"A payment intent payload for a one-time payment that overrides the default payment processor for the payment method."},"components/examples/AdvancedWithNonDefaultTarget":{"id":"components/examples/AdvancedWithNonDefaultTarget","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Target":"Region One Account"},"OneTime":{"Amount":50}},"description":"A payment intent payload for a one-time payment that overrides the default target for payment method and its default payment processor."},"components/examples/AdvancedWithFullContactAndAccount":{"id":"components/examples/AdvancedWithFullContactAndAccount","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"RecordTypeName":"Donor","SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}},"Account":{"RecordTypeName":"Household","SalesforceFields":{"Name":"Payer Family","BillingStreet":"Any Street","BillingCity":"Any City","BillingPostalCode":"00000"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50}},"description":"A payment intent payload for a one-time payment that includes details to create (after deduplication) of Contact and Account records for the payer."},"components/examples/AdvancedWithOriginCampaign":{"id":"components/examples/AdvancedWithOriginCampaign","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":25},"Origin":"Company website default payment form","CampaignId":"7013X000001mAZbQAM"},"description":"A payment intent payload for a one-time payment that includes the origin (channel) of the payment and associates the payment with a specific campaign in Salesforce."},"components/examples/AdvancedWithOneTimeSFFields":{"id":"components/examples/AdvancedWithOneTimeSFFields","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50,"SalesforceFields":{"cpm__any_findock_or_package_field__c":"Lorem Ipsum Dolor sit amet","any_custom_object_link__c":"7010Y000000dDSQ"}}},"description":"A payment intent payload for a one-time payment that includes additional information in Salesforce fields on the Installment record."},"components/examples/AdvancedWithRecurringSFFields":{"id":"components/examples/AdvancedWithRecurringSFFields","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01","SalesforceFields":{"cpm__any_findock_or_package_field__c":"Lorem Ipsum Dolor sit amet","any_custom_object_link__c":"7010Y000000dDSQ"}}},"description":"A payment intent payload for a recurring payment that includes additional information in Salesforce fields on the recurring record."},"components/examples/AdvancedWithInboundReportSFFields":{"id":"components/examples/AdvancedWithInboundReportSFFields","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50},"SalesforceFields":{"cpm__CustomField1__c":"Development Project fund","cpm__CustomField2__c":"Direct outreach"}},"description":"A payment intent payload for a one-time payment that includes additional information to add to Salesforce fields on the Inbound Report record,\nfor example, to handle business-specific reconciliation logic.\n"},"components/examples/AdvancedWithPackageActions":{"id":"components/examples/AdvancedWithPackageActions","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50},"PackageActions":{"PaymentHub-GiftAid":{"CreateGiftAidDeclaration":{"dateMade":"2019-11-15","startDate":"2020-01-01","endDate":"2020-12-31","firstName":"Test","lastName":"Payer","houseNameOrNumber":"12","postalCode":"L68 0AQ","overseas":false,"acquisitionMethod":"Digital"}}}},"description":"A payment intent message for a one-time donation that also creates a new Gift Aid Declaration record for the donor. The package action is available\nin orgs with the FinDock source connector for Gift Aid. \n"},"components/examples/AdvancedWithMultiCurrency":{"id":"components/examples/AdvancedWithMultiCurrency","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01","CurrencyISOCode":"EUR"}},"description":"A payment intent payload for a recurring payment in a multi-currency org that explicitly passes the payment currency."},"components/examples/AdvancedWithIdempotencyKey":{"id":"components/examples/AdvancedWithIdempotencyKey","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":10},"IdempotencyKey":"1hubybk7nh45rvbt6"},"description":"A payment intent payload that includes an idempotency key for the one-time payment to ensure the payment intent cannot be duplicated."},"components/examples/AdvancedWithSourceAndMatchingSetup":{"id":"components/examples/AdvancedWithSourceAndMatchingSetup","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"CreditCard","Processor":"PaymentHub-Stripe","Target":"Stripe-Main"},"OneTime":{"Amount":50},"Settings":{"SourceConnector":"PaymentHub-for-NPSP","ProcessingType":"CustomInboundReportSubType"}},"description":"A payment intent message that sets the source (e.g. to override the default source connector) specific a special Inbound Report sub type to use\nfor matching and reconciliation rather than the default sub type for payment intent inbound reports provided by FinDock.\n"},"components/examples/UpdateRecurringMethod":{"id":"components/examples/UpdateRecurringMethod","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}}},"description":"A payment intent payload to change the payment method of an existing recurring payment."},"components/examples/UpdateRecurringMethodProcessor":{"id":"components/examples/UpdateRecurringMethodProcessor","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Processor":"PaymentHub-SEPA"}},"description":"A payment intent payload to change the payment method and processor of an existing recurring payment."},"components/examples/UpdateRecurringMethodProcessorTarget":{"id":"components/examples/UpdateRecurringMethodProcessorTarget","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Target":"PRIMARY-BANK-ACCOUNT"}},"description":"A payment intent payload to change the payment method and target of an existing recurring payment."},"components/examples/UpdateRecurringMethodWithInitialPayment":{"id":"components/examples/UpdateRecurringMethodWithInitialPayment","value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"OneTime":{"Amount":1},"PaymentMethod":{"Name":"CreditCard","Processor":"PaymentHub-Stripe","Target":"Stripe-Main"}},"description":"A payment intent payload to change the payment method of an existing recurring payment to a method that requires an initial charge,\nlike changing from direct debit to credit card.\n"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50}},"key":"BasicOneTime","summary":"BasicOneTime","description":"A simple payment intent payload for a one-time payment with minimum required information.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicOneTime"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01"}},"key":"BasicRecurring","summary":"BasicRecurring","description":"A simple payment intent payload for a recurring payment with minimum required information.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurring"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"CreditCard","Processor":"PaymentHub-Stripe","Target":"Stripe-Main"},"OneTime":{"Amount":25},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01"}},"key":"BasicRecurringWithInitialPayment","summary":"BasicRecurringWithInitialPayment","description":"A payment intent payload for a recurring payment that includes an initial one-time charge.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicRecurringWithInitialPayment"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Id":"a083X00001aUMCnQAO"}},"key":"BasicPayExistingInstallmentWithId","summary":"BasicPayExistingInstallmentWithId","description":"A payment payload intent for paying an existing installment using the installment record Id for reference.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithId"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Id":"sdfasdf-asfads-242134-adsfadf-23423"}},"key":"BasicPayExistingInstallmentWithGUID","summary":"BasicPayExistingInstallmentWithGUID","description":"A simple payment intent payload for paying an existing installment using the installment GUID for reference.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/BasicPayExistingInstallmentWithGUID"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50},"WebhookURL":"https://hostdomain.com/api/endpoint"},"key":"AdvancedWithWebhook","summary":"AdvancedWithWebhook","description":"A payment intent payload for a one-time payment with a URL for webhook notifications.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithWebhook"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Processor":"PaymentHub-SEPA"},"OneTime":{"Amount":50}},"key":"AdvancedWithOverrideProcessor","summary":"AdvancedWithOverrideProcessor","description":"A payment intent payload for a one-time payment that overrides the default payment processor for the payment method.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOverrideProcessor"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Target":"Region One Account"},"OneTime":{"Amount":50}},"key":"AdvancedWithNonDefaultTarget","summary":"AdvancedWithNonDefaultTarget","description":"A payment intent payload for a one-time payment that overrides the default target for payment method and its default payment processor.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithNonDefaultTarget"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"RecordTypeName":"Donor","SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}},"Account":{"RecordTypeName":"Household","SalesforceFields":{"Name":"Payer Family","BillingStreet":"Any Street","BillingCity":"Any City","BillingPostalCode":"00000"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50}},"key":"AdvancedWithFullContactAndAccount","summary":"AdvancedWithFullContactAndAccount","description":"A payment intent payload for a one-time payment that includes details to create (after deduplication) of Contact and Account records for the payer.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithFullContactAndAccount"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":25},"Origin":"Company website default payment form","CampaignId":"7013X000001mAZbQAM"},"key":"AdvancedWithOriginCampaign","summary":"AdvancedWithOriginCampaign","description":"A payment intent payload for a one-time payment that includes the origin (channel) of the payment and associates the payment with a specific campaign in Salesforce.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOriginCampaign"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50,"SalesforceFields":{"cpm__any_findock_or_package_field__c":"Lorem Ipsum Dolor sit amet","any_custom_object_link__c":"7010Y000000dDSQ"}}},"key":"AdvancedWithOneTimeSFFields","summary":"AdvancedWithOneTimeSFFields","description":"A payment intent payload for a one-time payment that includes additional information in Salesforce fields on the Installment record.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithOneTimeSFFields"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01","SalesforceFields":{"cpm__any_findock_or_package_field__c":"Lorem Ipsum Dolor sit amet","any_custom_object_link__c":"7010Y000000dDSQ"}}},"key":"AdvancedWithRecurringSFFields","summary":"AdvancedWithRecurringSFFields","description":"A payment intent payload for a recurring payment that includes additional information in Salesforce fields on the recurring record.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithRecurringSFFields"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50},"SalesforceFields":{"cpm__CustomField1__c":"Development Project fund","cpm__CustomField2__c":"Direct outreach"}},"key":"AdvancedWithInboundReportSFFields","summary":"AdvancedWithInboundReportSFFields","description":"A payment intent payload for a one-time payment that includes additional information to add to Salesforce fields on the Inbound Report record,\nfor example, to handle business-specific reconciliation logic.\n","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithInboundReportSFFields"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":50},"PackageActions":{"PaymentHub-GiftAid":{"CreateGiftAidDeclaration":{"dateMade":"2019-11-15","startDate":"2020-01-01","endDate":"2020-12-31","firstName":"Test","lastName":"Payer","houseNameOrNumber":"12","postalCode":"L68 0AQ","overseas":false,"acquisitionMethod":"Digital"}}}},"key":"AdvancedWithPackageActions","summary":"AdvancedWithPackageActions","description":"A payment intent message for a one-time donation that also creates a new Gift Aid Declaration record for the donor. The package action is available\nin orgs with the FinDock source connector for Gift Aid. \n","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithPackageActions"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"Recurring":{"Amount":25,"Frequency":"Monthly","StartDate":"2025-01-01","EndDate":"2025-12-01","CurrencyISOCode":"EUR"}},"key":"AdvancedWithMultiCurrency","summary":"AdvancedWithMultiCurrency","description":"A payment intent payload for a recurring payment in a multi-currency org that explicitly passes the payment currency.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithMultiCurrency"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}},"OneTime":{"Amount":10},"IdempotencyKey":"1hubybk7nh45rvbt6"},"key":"AdvancedWithIdempotencyKey","summary":"AdvancedWithIdempotencyKey","description":"A payment intent payload that includes an idempotency key for the one-time payment to ensure the payment intent cannot be duplicated.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithIdempotencyKey"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Payer":{"Contact":{"SalesforceFields":{"FirstName":"Test","LastName":"Payer","Email":"test@findock.com","MailingStreet":"Any Street","MailingCity":"Any City","MailingPostalCode":"00000","MobilePhone":"0123456789"}}},"PaymentMethod":{"Name":"CreditCard","Processor":"PaymentHub-Stripe","Target":"Stripe-Main"},"OneTime":{"Amount":50},"Settings":{"SourceConnector":"PaymentHub-for-NPSP","ProcessingType":"CustomInboundReportSubType"}},"key":"AdvancedWithSourceAndMatchingSetup","summary":"AdvancedWithSourceAndMatchingSetup","description":"A payment intent message that sets the source (e.g. to override the default source connector) specific a special Inbound Report sub type to use\nfor matching and reconciliation rather than the default sub type for payment intent inbound reports provided by FinDock.\n","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/AdvancedWithSourceAndMatchingSetup"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"}}},"key":"UpdateRecurringMethod","summary":"UpdateRecurringMethod","description":"A payment intent payload to change the payment method of an existing recurring payment.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethod"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Processor":"PaymentHub-SEPA"}},"key":"UpdateRecurringMethodProcessor","summary":"UpdateRecurringMethodProcessor","description":"A payment intent payload to change the payment method and processor of an existing recurring payment.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessor"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"PaymentMethod":{"Name":"DirectDebit","Parameters":{"iban":"NL13TEST0123456789","holderName":"Test Payer"},"Target":"PRIMARY-BANK-ACCOUNT"}},"key":"UpdateRecurringMethodProcessorTarget","summary":"UpdateRecurringMethodProcessorTarget","description":"A payment intent payload to change the payment method and target of an existing recurring payment.","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodProcessorTarget"},"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment":{"value":{"SuccessURL":"https://hostdomain.com/success","FailureURL":"https://hostdomain.com/failure","Recurring":{"Id":"a0V3X00000S7BuCUAV"},"OneTime":{"Amount":1},"PaymentMethod":{"Name":"CreditCard","Processor":"PaymentHub-Stripe","Target":"Stripe-Main"}},"key":"UpdateRecurringMethodWithInitialPayment","summary":"UpdateRecurringMethodWithInitialPayment","description":"A payment intent payload to change the payment method of an existing recurring payment to a method that requires an initial charge,\nlike changing from direct debit to credit card.\n","id":"paths/~1PaymentIntent/post/requestBody/content/application~1json/examples/UpdateRecurringMethodWithInitialPayment"}},"securitySchemeStore":{"Salesforce_Production":{"id":"Salesforce_Production","type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for production orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://login.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}},"Salesforce_Sandbox":{"id":"Salesforce_Sandbox","type":"oauth2","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The Payment API uses "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the Salesforce OAuth2.0 web server flow"},"children":[]}]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"for sandbox orgs. The required flow and scope depends on the specific operation. For further information, see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"/api/payment-api-v2/section/authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"flows":{"authorizationCode":{"authorizationUrl":"https://test.salesforce.com/services/oauth2/authorize","tokenUrl":"https://{instance}.my.salesforce.com/services/oauth2/token","scopes":{"full":"Full access"}}}}},"servers":[{"url":"https://{instance}.my.salesforce.com/services/apexrest/cpm/v2","description":"Salesforce","variables":{"instance":{"default":"demo","description":"The domain name for your org."}}}]},"options":{"hideDownloadButtons":true,"codeSamples":{"skipOptionalParameters":false,"languages":[{"lang":"Payload"}]},"hideSidebar":true,"mockServer":{"off":true},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/api/payment-api-v2.json?download"},{"url":"/_bundle/api/payment-api-v2.yaml?download"}],"excludeFromSearch":false,"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"FinDock Payment API","description":"The FinDock Payment API is a REST API for handling one-time and recurring payments. The API also\nprovides informational endpoints you can use to build dynamic front-end applications that are\nnot dependent on a specific Salesforce of FinDock configuration.\n\nAlongside primitive data types such as `string`, the Payment API uses data types that might be unfamiliar\nto you if you have not worked with Salesforce. These data types are Salesforce objects, record types\nand fields.\n\n## Objects, record types and fields\n\nSalesforce objects (sObjects) are stored as records in the Salesforce database. These records are persistent representations of data.\nSome API resources accept, or even require, sObjects. The Payer block, for example, requires sObjects such as Contact and Account.\nThe API allows you to define these objects in payloads. FinDock sObjects like Inbound Report can be included as well,\nbut they require you to specify the object fields as Salesforce fields.\n\n**Record types** let Salesforce administrators offer specific business processes, picklist values, and page layouts to different users.\nOrganizations can, for example, differentiate between `Account` object records by assigning them an `Organization` or `Household` record type.\nThis facilitates the application of different types of page layouts or possible field values based on what record type an `Account` is.\n\n**Fields** are defined at the object level in Salesforce. Next to the out-of-the-box fields from Salesforce, custom fields can be added to objects. \nUse the Object Manager in Salesforce Setup to see available fields. Implementations of Salesforce can use different fields for a value like `email`.\n\nCustom fields for *standard Salesforce objects* like `Contact` and `Account` are passed with \"__c\" at the end of the field name.\nIn the example below, you see the standard fields `FirstName` and `LastName` and a custom field `TwitterHandle` for the Contact object.\n\n```json\n{\n  \"Payer\":{\n    \"Contact\":{\n      \"SalesforceFields\":{\n            \"FirstName\":\"Test\",\n            \"LastName\":\"Payer\",\n            \"TwitterHandle__c\": \"@TestPayerFamily\"\n        }\n    }\n  }\n}\n```\n\nCustom fields for **custom FinDock objects** like `Installment` and `Recurring Payment` can also be passed in a `SalesforceFields` object. `SalesforceFields`\npassed in the `OneTime` object are copied to the `Installment` record in Salesforce and `SalesforceFields` passed in the `Recurring` object are copied to the\n`Recurring` object in Salesforce. To which `Recurring` object the values are stored depends on the FinDock configuration.\n\n```json\n    {\n      \"OneTime\":{\n        \"Amount\": 10.0,\n        \"SalesforceFields\": {\n          \"Sales_Invoice__c\": \"a506E0000009TfL\"\n        }\n      }\n    }\n    ```\n\n## Working with payer details\n\nSalesforce provides two objects to define the Payer:\n  - Account: usually an organization\n  - Contact: an individual\n\nAdded to that simple split is [Person Account](https://help.salesforce.com/s/articleView?id=sf.account_person.htm&type=5), which\nstores information about individual people by combining certain Account and Contact fields into a single record. It is not its\nown object, but can be stored as an Account with a specific record type (see below).\n\nSome features of Salesforce - like Fundraising used in NonProfit Cloud (NPC) - *require* Person Account. The payer details are a Person Account\nrecord rather than a Contact. Make sure to always check with your Salesforce admin whether they are enabled and used.\n\nTo send Person Account details to the Payment API, use an Account object with a `RecordTypeName` (API name) of the type Person Account.\nBy default the API name is `PersonAccount`, but there can be customized or the org (Salesforce environment may have multiple\nPerson Account record types. Always consult your Salesforce admin regarding record types.\n\nWhether an Account or Contact record, you always need to take into consideration how the payer is deduplicated. Every organization \nhas [configured deduplication rules](https://help.salesforce.com/s/articleView?id=sales.managing_duplicates_overview.htm&type=5)\nthat define the information the payment intent message needs to include for deduplication, bearing in mind that the more data points you \nhave, the more effective deduplication is.\n\n```json\n{\n  \"Account\":{\n    \"RecordTypeName\": \"person-account-record-type\",\n        \"SalesforceFields\":{\n          \"Name\":\"Test Payer\",\n          \"BillingStreet\":\"Any Street\",\n          \"BillingCity\":\"Any City\",\n          \"BillingPostalCode\":\"00000\"\n        }\n      }\n}\n```\n\nFor Person Accounts the following exceptions for (custom) field notations apply:\n- Standard Account fields can be passed as regular fields: `\"BillingStreet\":\"Any Street\"`.\n- Custom Account fields can be passed with the regular `__c` suffix: `\"Custom_Street__c\":\"Any Street\"`.\n- Standard Contact fields need to be prefixed with `Person`, with the exception of FirstName, LastName, Salutation which are passed as regular fields: `\"PersonEmail\" : \"test@findock.com\"`.\n- Custom Contact fields need to be suffixed with `__pc`: `\"Custom_email__pc\":\"test@findock.com\"`\n\n```json\n{\n  \"Account\":{\n    \"RecordTypeName\": \"person-account-record-type\",\n    \"SalesforceFields\":{\n      \"FirstName\": \"John\",\n      \"LastName\": \"Payer\",\n      \"PersonEmail\": \"test@findock.com\",\n      \"BillingStreet\": \"Any Street\",\n      \"Custom_account_field__c\": \"Apartment Name\",\n      \"Custom_contact_field__pc\": \"Middle Name\"\n    }\n  }\n}\n```\n\nFor the FinDock for Fundraising source connector used with NonProfit Cloud (NPC), for example, the following exception applies:\nSince the \"Recurring\" object (Gift Commitment) is split in two objects (Gift Commitment & Gift Commitment Schedule), a prefix `GiftCommitment` is required to set SalesforceFields on this object.\nFields without prefix are assumed to be set on the Gift Commitment Schedule object. Example: `GiftCommitment.GiftVehicle`.\n\nYou can check which Source Connectors are available by performing a GET operation on the [Source Connector](/api/payment-api-v2/source-connectors) endpoint.\n\n## Authentication\n\nAuthentication is accomplished through an [Oauth2.0 authorization flow](https://help.salesforce.com/articleView?id=remoteaccess_oauth_web_server_flow.htm&type=5). Each Salesforce environment requires\nits own token. A [refresh token](https://help.salesforce.com/articleView?id=remoteaccess_oauth_flows.htm&type=5) can be used to acquire a new access token if the current token has expired.\nRead more on how to authenticate to Salesforce in the [Salesforce developer guide](https://help.salesforce.com/articleView?id=remoteaccess_oauth_flows.htm&type=5).\nBoth `client_id` and `client_secret` can be acquired from the Salesforce 'Setup' from a 'Connected App'.\n- The `Authorization` token can be passed as a Bearer token in the request Header.\n- To Acquire a new `Authorization` token with the returned `Refresh` token, please make sure to pass the right `grant_type`, `client_id`, `client_secret` and `refresh_token` as specified in the\nSalesforce documentation referenced above. To get up and running quickly, use the (unofficial-but-provided-by) [Salesforce Postman Collection](https://github.com/scolladon/postman-salesforce-apis),\nas explained in this [blog](https://developer.salesforce.com/blogs/2020/03/explore-the-salesforce-apis-with-a-postman-collection.html) and look for the 'auth' folder.\n\n## Error and response codes\n\nIF the API is not called successfully, you receive a HTTP Status Code `4xx` or `500`. A `422` code is returned when the message was well-formed, but could not be processed because of, for instance, wrong data. \nIn the response you find additional information on how to prevent or handle the error through an array of `Errors` with an `error_code` and `error_message`, like in the following example.\n\n```json\n{\n  \"Errors\": [\n    {\n      \"error_message\": \"Amount can't be 0 or negative\",\n      \"error_code\": \"200\"\n    }\n  ]\n}\n```\n\nBelow are some of the possible error codes:\n\n| Code | Description |\n| --- | --- |\n| 010 | Malformed request: missing one or more mandatory core parameter(s)\n| 011 | Malformed request: missing one or more mandatory Payment Processor parameters\n| 012 | Malformed request: missing one or more mandatory SourceConnector parameters\n| 200 | Invalid data: the supplied data is incorrect (e.g. an invalid e-mail address).\n| 201 | Sort code or bank account is invalid (Bacs Direct Debit).\n| 202 | IBAN _&lt;your-IBAN&gt;_ is not valid.\n| 203 | The provided IBAN is not in SEPA geographical zone.\n| 204 | BIC is required to collect SEPA Direct Debit from a non-EAA country bank account.\n| 205 | Street, Housename or Number, Zip code and City are required to collect SEPA Direct Debit from a non-EEA country bank account.\n| 206 | Clearing number and/or bank account invalid (Sweden).\n| 998 | An object is missing and no default is specified in the org.\n| 999 | Error without specific category: consult the `error_message` for details.\n\n## Webhook events and notifications\n\nTo receive updates on payments created with the `/PaymentIntent` endpoint:\n\n- pass an endpoint URL in the `WebhookURL` parameter in the request body.\n- add your URL to the [Remote Site Setting](https://help.salesforce.com/articleView?id=configuring_remoteproxy.htm&type=5) of the Salesforce org.\n\nFinDock sends you notifications for the following events around your API call:\n\n| Event | Description |\n| ----- | ------------ |\n|`paymentIntent.processed` | Processing of the API call has finished successfully. This does not mean a payment is collected. |\n|`paymentIntent.in_review` | Processing of the API call has stalled and manual intervention from Salesforce side is needed. This does not stop the payer from completing the payment flow. |\n|`paymentIntent.failed` | Processing of theAPI call has failed and needs to be handled in the Salesforce environment. This does not stop the payer from completing the payment flow. |\n|`installment.created` | When an Installment record (expected one-time payment) is created. |\n|`installment.status_change` | If the `status` of the Installment record changes, either via a notification from a PSP or manually changed. |\n\nNo specific events are sent for recurring payments other than the `paymentIntent` which contains the Salesforce Id of the recurring record.\n\nFor more information about processing online payments, please [Processing online payments](/docs/@production/reconciliation/processing-and-reconciling-online-payments.md).\n\nFor `paymentIntent` you receive notifications with the following body. Each event contains a `type` and a `data` object with further details.\nCheck out the [PaymentIntent object schema](/api/payment-api-v2/payment-intent) for definitions.\n\n```json\n{\n  \"type\": \"paymentIntent.processed\",\n  \"data\": {\n    \"Status\": \"Matched\",\n    \"Recurring\": {\n      \"Url\": \"/services/data/v65.0/sobjects/cpm__Recurring_Payment__c/a0V3X00000S7b5YUAR\",\n      \"Type\": \"cpm__Recurring_Payment__c\",\n      \"Id\": \"a0V3X00000S7b5YUAR\"\n    },\n    \"Payer\": {\n      \"Contact\": {\n        \"Url\": \"/services/data/v65.0/sobjects/Contact/0033X00003H9uZPQAZ\",\n        \"Type\": \"Contact\",\n        \"Id\": \"0033X00003H9uZPQAZ\",\n        \"Name\": \"Test Payment\"\n      },\n      \"Account\": {\n        \"Url\": \"/services/data/v65.0/sobjects/Account/0013X00002bZPGIQA4\",\n        \"Type\": \"Account\",\n        \"Id\": \"0013X00002bZPGIQA4\",\n        \"Name\": \"Payment Family\"\n      }\n    },\n    \"OneTime\": {\n      \"Url\": \"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001mFTBAQA4\",\n      \"Type\": \"cpm__Installment__c\",\n      \"Id\": \"a083X00001mFTBAQA4\",\n      \"Status\": \"Pending\"\n    },\n    \"Id\": \"pi_6cazikr7625yqt9mf\"\n  }\n}\n```\n\nFor `installment` you receive a notification with the following body.\n\n```json\n{\n  \"type\": \"installment\",\n  \"data\": {\n    \"Url\": \"/services/data/v65.0/sobjects/cpm__Installment__c/a083X00001kJynLQAS\",\n    \"Type\": \"cpm__Installment__c\",\n    \"Id\": \"a083X00001kJynLQAS\",\n    \"Target\": \"Adyen1\",\n    \"Status\": \"Collected\",\n    \"RecordTypeName\": \"Receivable\",\n    \"PayUrl\": \"https://link.dev.findock.com/pay/3xxxxmuai2/8897b4da-e48a-7ff3-90dd-ecb65094802c\",\n    \"Payments\": [\n      {\n        \"Url\": \"/services/data/v65.0/sobjects/cpm__Payment__c/a0R3X00000V1sutUAB\",\n        \"Type\": \"cpm__Payment__c\",\n        \"Id\": \"a0R3X00000V1sutUAB\",\n        \"PaymentProcessor\": \"PaymentHub-Adyen\",\n        \"PaymentMethod\": \"CreditCard\",\n        \"CollectionDate\": \"2020-11-26\",\n        \"Amount\": 15\n      }\n    ],\n    \"PaymentProcessor\": \"PaymentHub-Adyen\",\n    \"PaymentMethod\": \"CreditCard\",\n    \"PaymentIntentId\": \"pi_5jthokq7z8som0w6o\",\n    \"AmountOpen\": 0,\n    \"Amount\": 15\n  }\n}\n```\n","summary":"API reference specification. Last updated on 2026-06-22."}},"baseSlug":"/api/payment-api-v2","routesMapping":{}}