# Models

## The AddRecurringProfileRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"AddRecurringProfileRequest":{"required":["Amount","BillingFrequency","StartDate","TokenGuid"],"type":"object","properties":{"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"TokenGuid":{"type":"string","description":"required - Valid token guid of created tokenized account"},"Amount":{"maxLength":7,"type":"string","description":"required - Amount to be charged per billing frequency"},"StartDate":{"type":"string","description":"required - format yyyy-MM-dd - start date of contract"},"EndDate":{"type":"string","description":"optional - format yyyy-MM-dd - end date of contract (must be after StartDate) if you wish a contract to stop recurring at certain date","nullable":true},"NextBillDate":{"type":"string","description":"optional - format yyyy-MM-dd - We will calculate if not provided. The date when the first recurrence should begin charging the donor's card. Must be after StartDate. Use our GET api/nextBillDate API to help calculate.","nullable":true},"BillingFrequency":{"type":"string","description":"required - How often the recurrence should occur. Possible values:\r\n    \"Daily\", (once per day)\r\n    \"Weekly\", (once per week)\r\n    \"Bi-Weekly\", (once per 2 weeks)\r\n    \"Monthly\", (once per month)\r\n    \"Bi-Monthly\", (Once every 2 months)\r\n    \"Semi-Monthly\", (twice per month)\r\n    \"Quarterly\", (four times per year)\r\n    \"Semi-Annually\", (twice per year)\r\n    \"Annually\" (once per year)"},"PreFeeAmount":{"maxLength":7,"type":"string","description":"optional - Pre Fee Amount with the fees not included if using PayFee flag (primary used for Non Profit transactions like Donations)","nullable":true},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction (primary used for Non Profit transactions like a donation), if used see Amount and PreFeeAmount info","nullable":true},"TransactionSourceGroupId":{"type":"string","description":"optional - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;","nullable":true},"ExternalEventId":{"maxLength":10,"type":"string","description":"optional - Event Id per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"optional - Event Guid per Product","nullable":true},"ExternalEventName":{"maxLength":500,"type":"string","description":"optional - Event Name per Product","nullable":true},"Surcharge":{"maxLength":7,"type":"string","description":"optional - calculated surcharge amount","nullable":true},"CommissionRateOverride":{"type":"string","description":"optional - The percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract. Primary used for Non Profit transactions.","nullable":true},"CardProcessingFeeOverride":{"type":"string","description":"optional - Overrides the default percentage processing fee. Primary used for Non Profit transactions.","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The AFShieldPaymentRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"AFShieldPaymentRequest":{"type":"object","properties":{"ProductDescription":{"maxLength":256,"type":"string","nullable":true},"ProductItem":{"maxLength":256,"type":"string","nullable":true},"ProductType":{"maxLength":256,"type":"string","nullable":true},"ProductQuantity":{"maxLength":3,"type":"string","nullable":true},"SessionId":{"maxLength":32,"type":"string","nullable":true},"BillToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShippingAddressStreet1":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressStreet2":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressCountry":{"maxLength":2,"type":"string","nullable":true},"ShippingAddressCity":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressEmail":{"maxLength":64,"type":"string","format":"email","nullable":true},"ShippingAddressName":{"maxLength":64,"type":"string","nullable":true},"ShippingAddressZip":{"maxLength":10,"type":"string","nullable":true},"ShippingAddressState":{"maxLength":50,"type":"string","nullable":true},"ShipToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShipToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"ShipToStreetForUK":{"maxLength":256,"type":"string","nullable":true},"BillToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"BillToStreetForUK":{"maxLength":256,"type":"string","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The AuthenticationClientSessionResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"AuthenticationClientSessionResponse":{"type":"object","properties":{"Token":{"type":"string","description":"This is the AccessToken you will use for any other API call","nullable":true},"ClientId":{"type":"string","description":"Unique identifier for the API Partner; provided by FrontStream","format":"uuid"},"ExpirationDate":{"type":"string","description":"The date and time at which the AccessToken will no longer be valid if not used first. Will always be 5 hours from when the response is sent.","format":"date-time"}},"additionalProperties":false,"description":""}}}}
```

## The BrokenRule object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"BrokenRule":{"type":"object","properties":{"ErrorCode":{"type":"integer","format":"int32"},"Message":{"type":"string","nullable":true},"LoggerMessage":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The CharitySearchResults object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"CharitySearchResults":{"type":"object","properties":{"TotalResultCount":{"type":"integer","description":"How many total possible results there are for your search.","format":"int32"},"TotalPages":{"type":"integer","description":"How many pages of data exist based on your selected PageSize.","format":"int32"},"PageIndex":{"type":"integer","description":"Confirms what you passed in the querystring.","format":"int32"},"PageSize":{"type":"integer","description":"Confirms what you passed in the querystring.","format":"int32"},"SearchResults":{"type":"array","items":{"$ref":"#/components/schemas/CharitySearchResultsList"},"description":"Each record in the array represents a full Charity Record.","nullable":true}},"additionalProperties":false,"description":""},"CharitySearchResultsList":{"type":"object","properties":{"CharityId":{"type":"string","description":"Unique Identifier for the Charity in the Payment API.","nullable":true},"NpoName":{"type":"string","description":"Name of the Charity in the Payment API database.","nullable":true},"EIN":{"type":"string","description":"The United States EIN or Canadian Tax ID of the Charity.","nullable":true},"Address1":{"type":"string","description":"Address Line 1 of the Charity's address.","nullable":true},"Address2":{"type":"string","description":"Address Line 2 of the Charity's address.","nullable":true},"City":{"type":"string","description":"City of the Charity's address.","nullable":true},"State":{"type":"string","description":"State of the Charity's address.","nullable":true},"Zip":{"type":"string","description":"Postal Code of the Charity's address.","nullable":true},"Country":{"type":"string","description":"Country of the Charity's address.","nullable":true},"NpoEligibilityFlag":{"type":"boolean","description":"Indicates whether or not the organization is currently able to receive tax-deductible donations based on United States IRS filings."},"ParentOrgName":{"type":"string","description":"This will return the same value as NpoName if the Charity has no Parent organization, but if a particular organization has indicated that it is a child organization of a larger Charity (such as a regional chapter of a nationwide charity), the Parent Charity name will appear here.","nullable":true},"NTEEcode":{"type":"string","description":"The Charity's NTEE code as defined by United States IRS filings. This is not a required classification, and thus may not exist for all records (and will not exist for Canadian charity records).","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The CharitySearchResultsList object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"CharitySearchResultsList":{"type":"object","properties":{"CharityId":{"type":"string","description":"Unique Identifier for the Charity in the Payment API.","nullable":true},"NpoName":{"type":"string","description":"Name of the Charity in the Payment API database.","nullable":true},"EIN":{"type":"string","description":"The United States EIN or Canadian Tax ID of the Charity.","nullable":true},"Address1":{"type":"string","description":"Address Line 1 of the Charity's address.","nullable":true},"Address2":{"type":"string","description":"Address Line 2 of the Charity's address.","nullable":true},"City":{"type":"string","description":"City of the Charity's address.","nullable":true},"State":{"type":"string","description":"State of the Charity's address.","nullable":true},"Zip":{"type":"string","description":"Postal Code of the Charity's address.","nullable":true},"Country":{"type":"string","description":"Country of the Charity's address.","nullable":true},"NpoEligibilityFlag":{"type":"boolean","description":"Indicates whether or not the organization is currently able to receive tax-deductible donations based on United States IRS filings."},"ParentOrgName":{"type":"string","description":"This will return the same value as NpoName if the Charity has no Parent organization, but if a particular organization has indicated that it is a child organization of a larger Charity (such as a regional chapter of a nationwide charity), the Parent Charity name will appear here.","nullable":true},"NTEEcode":{"type":"string","description":"The Charity's NTEE code as defined by United States IRS filings. This is not a required classification, and thus may not exist for all records (and will not exist for Canadian charity records).","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The ClientSessionRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"ClientSessionRequest":{"required":["ClientId","ClientSecret"],"type":"object","properties":{"ClientId":{"type":"string","description":"Unique identifier for the API Partner; provided by FrontStream"},"ClientSecret":{"maxLength":500,"type":"string","description":"Key specifically paired to the clientId"}},"additionalProperties":false,"description":""}}}}
```

## The ConstraintOperation object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"ConstraintOperation":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"type":"integer","format":"int32"}}}}
```

## The DistributionType object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"DistributionType":{"enum":[1,2],"type":"integer","format":"int32"}}}}
```

## The EditAllNotificationConfigSave object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"EditAllNotificationConfigSave":{"required":["NotificationConfigs"],"type":"object","properties":{"IntegrationSourceGuid":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"NotificationConfigs":{"maxItems":20,"type":"array","items":{"$ref":"#/components/schemas/EditNotificationConfigSave"},"description":"NotificationConfigs: 1 - n notification configs for an Integration Source"}},"additionalProperties":false,"description":""},"EditNotificationConfigSave":{"required":["NotificationConfigurationTypeId","NotificationProtocolTypeId","NotificationUrl","Retries"],"type":"object","properties":{"NotificationConfigurationTypeId":{"type":"string","description":"required - NotificationConfigurationTypeId: possible values -\r\n        1 - General"},"NotificationProtocolTypeId":{"type":"string","description":"required - NotificationProtocolTypeId: possible values -\r\n        1 - Web,\r\n        2 - Email - (Email currently not in use)"},"NotificationUrl":{"maxLength":250,"type":"string","description":"required - NotificationUrl - Url to post notification to. Integration Source endpoint to post payload to. Example: https://{yourenvironment.yourdomain}.com/api/yourNotification endpoint. Make sure to include Https://"},"NotificationEmailFrom":{"maxLength":250,"type":"string","description":"Not in use - NotificationEmailFrom – optional Notification Email from","format":"email","nullable":true},"NotificationEmailTo":{"maxLength":250,"type":"string","description":"Not in use - NotificationEmailTo – optional Notification Email to","format":"email","nullable":true},"Retries":{"type":"integer","description":"required - number of retries to try again failed notifications - currently retries 10 times by default or set to 0","format":"int32"},"AccessToken":{"maxLength":250,"type":"string","description":"optional (max: 250) - if access token needed to hit notification url","nullable":true},"IsDeleted":{"type":"boolean","description":"set to true if you wish to deactivate configuration, otherwise set to false"}},"additionalProperties":false,"description":""}}}}
```

## The EditNotificationConfigSave object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"EditNotificationConfigSave":{"required":["NotificationConfigurationTypeId","NotificationProtocolTypeId","NotificationUrl","Retries"],"type":"object","properties":{"NotificationConfigurationTypeId":{"type":"string","description":"required - NotificationConfigurationTypeId: possible values -\r\n        1 - General"},"NotificationProtocolTypeId":{"type":"string","description":"required - NotificationProtocolTypeId: possible values -\r\n        1 - Web,\r\n        2 - Email - (Email currently not in use)"},"NotificationUrl":{"maxLength":250,"type":"string","description":"required - NotificationUrl - Url to post notification to. Integration Source endpoint to post payload to. Example: https://{yourenvironment.yourdomain}.com/api/yourNotification endpoint. Make sure to include Https://"},"NotificationEmailFrom":{"maxLength":250,"type":"string","description":"Not in use - NotificationEmailFrom – optional Notification Email from","format":"email","nullable":true},"NotificationEmailTo":{"maxLength":250,"type":"string","description":"Not in use - NotificationEmailTo – optional Notification Email to","format":"email","nullable":true},"Retries":{"type":"integer","description":"required - number of retries to try again failed notifications - currently retries 10 times by default or set to 0","format":"int32"},"AccessToken":{"maxLength":250,"type":"string","description":"optional (max: 250) - if access token needed to hit notification url","nullable":true},"IsDeleted":{"type":"boolean","description":"set to true if you wish to deactivate configuration, otherwise set to false"}},"additionalProperties":false,"description":""}}}}
```

## The FeeListRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"FeeListRequest":{"required":["Transactions"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"IntegrationSourceGuid":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"TokenGuid":{"type":"string","description":"Payment API Token GUID. Card Type of Token will be used in Fee Calculation. If using TokenGuid then do not set CreditCardTypeId parameter","nullable":true},"Transactions":{"type":"array","items":{"$ref":"#/components/schemas/PaymentTransTypeRequest"},"description":"required - 1 to n transactions to break down transaction line items"}},"additionalProperties":false},"PaymentTransTypeRequest":{"required":["Amount","TransactionSourceGroupId"],"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","description":"required - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;\r\n        13 - EventDonationFee;\r\n        14 - SponsorshipFee\r\n        15 - MembershipFee"},"Amount":{"maxLength":7,"type":"string","description":"required - Amount of line item without the fees included, Payment api will calculate fees for you"},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intends to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)"},"CommissionRateOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - The percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract.","nullable":true},"CardProcessingFeeOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - Overrides the default percentage processing fee","nullable":true},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true},"Tip":{"maxLength":7,"type":"string","description":"optional (max: 7) - An amount taken up front for the API Partner if Donor decides to apply a tip. Added to the total amount to charge on the donor’s card . Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true},"Tax":{"maxLength":7,"type":"string","description":"optional (max: 7) - A tax amount taken up front. Added to the total amount to charge on the donor’s card. Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The FeeListResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"FeeListResponse":{"type":"object","properties":{"TotalPaymentAmount":{"type":"number","description":"The total payment amount processed toward the cardholder's account.","format":"double"},"TotalFeesAmount":{"type":"number","description":"The calculated total fees amount of the list of transactions.","format":"double"},"TotalTaxAmount":{"type":"number","description":"The calculated total tax amount of the list of transactions.","format":"double"},"TransactionFees":{"type":"array","items":{"$ref":"#/components/schemas/FeeResponse"},"description":"List of Transaction Fee Responses","nullable":true}},"additionalProperties":false},"FeeResponse":{"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","nullable":true},"PaymentAmount":{"type":"number","description":"This is the amount charged to the donor. Will be equal to the sum of the Amount parameters if payFee=false, but if payFee=true, then this will be the amount that will be charged to the donor in order to have the net post-disbursement donation be equal to the Amount parameters.","format":"double","nullable":true},"CardFeeRate":{"type":"number","description":"example 2.5% - applied to EVERY donation. This is the FrontStream card processing fee. The percentage of the PaymentAmount that will be taken for credit card fees. Expressed as a human-readable percentage rather than a decimal value, it is intended to be able to be displayed directly on a page without needing to be converted.","format":"double","nullable":true},"CardFeeAmount":{"type":"number","description":"This is the amount that is owed to the gateway for the example 2.5% that FrontStream collects from the transaction.\r\n 2.5% of transaction amount if donor is not paying the fee, otherwise 2.5% of the transaction + card fee.","format":"double","nullable":true},"CardTypeFeeAmount":{"type":"number","description":"A per transaction fee configured by card type (VI, MC, DI, AMEX, etc.) per API Partner's Contract other wise 0 (zero)","format":"double","nullable":true},"TotalCommissionRate":{"type":"number","description":"The Total percentage of Commissions that FrontStream takes from a given transaction.\r\nThis rate = Partner CommissionRate + FS CommissionRate","format":"double","nullable":true},"TotalCommissionAmount":{"type":"number","description":"The product of the transaction times the Total commission rate.","format":"double","nullable":true},"PartnerCommissionRate":{"type":"number","description":"The Partner Commission percentage taken on behalf of the Partner from a given transaction.","format":"double","nullable":true},"PartnerCommissionAmount":{"type":"number","description":"The product of the transaction times the Partner commission rate.","format":"double","nullable":true},"FsCommissionRate":{"type":"number","description":"The FrontStream Commission percentage that FrontStream takes from a given transaction.","format":"double","nullable":true},"FsCommissionAmount":{"type":"number","description":"The product of the transaction times the FrontStream commission rate.","format":"double","nullable":true},"TotalFees":{"type":"number","description":"The sum of all fees applied to a transaction amount. (TotalCommission + CardFee + FlatFee + CardFeeOnFee)","format":"double","nullable":true},"MaxOverridePartnerCommissionRate":{"type":"number","description":"The derived minimum partner override rate and maximum partner override rate\r\n\r\nMaxOverridePartnerCommissionRate = TotalFees = (PartnerCommission rate) + (Card Fee Rate) + (Fs Commission Rate)\r\nMinOverridePartnerCommissionRate = (Card Fee rate) + (Fs Commission rate)","format":"double"},"MinOverridePartnerCommissionRate":{"type":"number","format":"double"},"PerTransFee":{"type":"number","description":"The flat amount that will be taken from the PaymentAmount for any Per-Transaction Fees as configured in your contract.","format":"double","nullable":true},"Tip":{"type":"number","description":"The flat amount that will be paid out to the API Partner if Donor decides to add a tip regardless of payFee true or false.","format":"double"},"CardFeeOnFeeAmount":{"type":"number","format":"double","nullable":true},"Tax":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The FeeResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"FeeResponse":{"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","nullable":true},"PaymentAmount":{"type":"number","description":"This is the amount charged to the donor. Will be equal to the sum of the Amount parameters if payFee=false, but if payFee=true, then this will be the amount that will be charged to the donor in order to have the net post-disbursement donation be equal to the Amount parameters.","format":"double","nullable":true},"CardFeeRate":{"type":"number","description":"example 2.5% - applied to EVERY donation. This is the FrontStream card processing fee. The percentage of the PaymentAmount that will be taken for credit card fees. Expressed as a human-readable percentage rather than a decimal value, it is intended to be able to be displayed directly on a page without needing to be converted.","format":"double","nullable":true},"CardFeeAmount":{"type":"number","description":"This is the amount that is owed to the gateway for the example 2.5% that FrontStream collects from the transaction.\r\n 2.5% of transaction amount if donor is not paying the fee, otherwise 2.5% of the transaction + card fee.","format":"double","nullable":true},"CardTypeFeeAmount":{"type":"number","description":"A per transaction fee configured by card type (VI, MC, DI, AMEX, etc.) per API Partner's Contract other wise 0 (zero)","format":"double","nullable":true},"TotalCommissionRate":{"type":"number","description":"The Total percentage of Commissions that FrontStream takes from a given transaction.\r\nThis rate = Partner CommissionRate + FS CommissionRate","format":"double","nullable":true},"TotalCommissionAmount":{"type":"number","description":"The product of the transaction times the Total commission rate.","format":"double","nullable":true},"PartnerCommissionRate":{"type":"number","description":"The Partner Commission percentage taken on behalf of the Partner from a given transaction.","format":"double","nullable":true},"PartnerCommissionAmount":{"type":"number","description":"The product of the transaction times the Partner commission rate.","format":"double","nullable":true},"FsCommissionRate":{"type":"number","description":"The FrontStream Commission percentage that FrontStream takes from a given transaction.","format":"double","nullable":true},"FsCommissionAmount":{"type":"number","description":"The product of the transaction times the FrontStream commission rate.","format":"double","nullable":true},"TotalFees":{"type":"number","description":"The sum of all fees applied to a transaction amount. (TotalCommission + CardFee + FlatFee + CardFeeOnFee)","format":"double","nullable":true},"MaxOverridePartnerCommissionRate":{"type":"number","description":"The derived minimum partner override rate and maximum partner override rate\r\n\r\nMaxOverridePartnerCommissionRate = TotalFees = (PartnerCommission rate) + (Card Fee Rate) + (Fs Commission Rate)\r\nMinOverridePartnerCommissionRate = (Card Fee rate) + (Fs Commission rate)","format":"double"},"MinOverridePartnerCommissionRate":{"type":"number","format":"double"},"PerTransFee":{"type":"number","description":"The flat amount that will be taken from the PaymentAmount for any Per-Transaction Fees as configured in your contract.","format":"double","nullable":true},"Tip":{"type":"number","description":"The flat amount that will be paid out to the API Partner if Donor decides to add a tip regardless of payFee true or false.","format":"double"},"CardFeeOnFeeAmount":{"type":"number","format":"double","nullable":true},"Tax":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The GetTokenAchRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"GetTokenAchRequest":{"required":["CheckAccountNumber","CheckAccountTypeId","CheckRoutingNumber","CheckTypeId","City","Country","Email","NameOnCheck","Street"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"CheckRoutingNumber":{"maxLength":9,"type":"string","description":"required - Valid Check Bank Routing Number - formats -\r\nUS: Enter 9-digits,\r\nCA: Enter 9-digits (Format: 0YYYXXXXX: A mandatory leading zero. YYY: The 3-digit institution number. XXXXX: The 5-digit transit number),\r\nAU: Enter 6-digits - BSB Number (Bank State Branch) without hyphen"},"CheckAccountNumber":{"maxLength":20,"type":"string","description":"required - Valid Check Account Number - formats -\r\nUS: Enter 8-12 digits,\r\nCA: Enter 7-12 digits,\r\nAU: Enter 3-9 digits"},"CheckNumber":{"maxLength":10,"type":"string","description":"optional (max: 10) - Valid Check Number","nullable":true},"CheckAccountTypeId":{"type":"string","description":"required for Check ACH transactions - possible values -\r\n        1 - Checking,\r\n        2 - Saving"},"CheckTypeId":{"type":"string","description":"required for Check ACH transactions - possible values -\r\n        1 - Personal,\r\n        2 - Corporate,\r\n        3 - Government"},"NameOnCheck":{"maxLength":25,"type":"string","description":"required - Name on ACH Check Account"},"Email":{"maxLength":100,"type":"string","description":"required - valid contact email","format":"email"},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000","nullable":true},"Street":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing street"},"City":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing city"},"State":{"maxLength":50,"type":"string","description":"optional - 2 char US state code, 3 char may be used for other non-US","nullable":true},"Country":{"maxLength":2,"type":"string","description":"optional - 2 char country code"},"Currency":{"maxLength":3,"type":"string","description":"optional - 3 char currency code - Example for US - \"USD\", for CA - \"CAD\"","nullable":true},"ExternalConstituentId":{"maxLength":200,"type":"string","description":"optional (max: 200) - ConstituentId per Product","nullable":true},"FirstName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing First Name","nullable":true},"LastName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing Last Name","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"client ip address (max: 40) where transaction originates","nullable":true}},"additionalProperties":false}}}}
```

## The GetTokenRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"GetTokenRequest":{"required":["CardNum","City","Country","Email","ExpMonth","ExpYear","NameOnCard","Street"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"IntegrationSource":{"type":"string","description":"internal use","nullable":true},"CardNum":{"maxLength":30,"type":"string","description":"Valid Credit card number"},"CardType":{"maxLength":20,"type":"string","description":"optional (max: 20) - \"American Express\", \"Mastercard\", \"Visa\", \"Discover\", \"Diners Club\" - will be set internally based on cardNum","nullable":true},"ExpMonth":{"maxLength":2,"minLength":2,"type":"string","description":"example: \"01\" for January - required"},"ExpYear":{"maxLength":2,"minLength":2,"type":"string","description":"example: \"29\" for 2029 - required"},"CVNum":{"maxLength":4,"type":"string","description":"optional (max: 4) - valid CVV - please provide for CVV checks","nullable":true},"NameOnCard":{"maxLength":25,"type":"string","description":"required - Name on Card"},"Email":{"maxLength":100,"type":"string","description":"required - valid contact email","format":"email"},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) - please provide for best interchange and avs checks - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000","nullable":true},"Street":{"maxLength":50,"type":"string","description":"required - please provide for best interchange and avs checks"},"City":{"maxLength":50,"type":"string","description":"required - please provide for best interchange and avs checks"},"State":{"maxLength":50,"type":"string","description":"optional - 2 char US state code, 3 char may be used for other non-US","nullable":true},"Country":{"maxLength":2,"type":"string","description":"required - 2 char country code"},"Currency":{"maxLength":3,"type":"string","description":"optional - 3 char currency code - Example for US - \"USD\", for CA - \"CAD\"","nullable":true},"ExternalConstituentId":{"maxLength":200,"type":"string","description":"optional (max: 200) - ConstituentId per Product","nullable":true},"FirstName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing First Name","nullable":true},"LastName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing Last Name","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"client ip address (max: 40) where transaction originates","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The GetTokenResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"GetTokenResponse":{"type":"object","properties":{"Successful":{"type":"boolean","description":"This is \"true\" tokenization process was successful, and \"false\" if unsuccessful."},"Message":{"type":"string","description":"Get Token response message","nullable":true},"ProcessorMessage":{"type":"string","description":"Get Token Processor response message","nullable":true},"TransactionId":{"type":"string","description":"Not currently used and may be null","nullable":true},"TokenGuid":{"type":"string","description":"The unique GUID associated with the credit card or bank token you created that is used with the api/paymentToken endpoint","format":"uuid"},"ExternalCardToken":{"type":"string","description":"ExternalCardToken if available to return - represents 3rd party gateway card token","nullable":true},"ExternalCheckToken":{"type":"string","description":"ExternalCheckToken if available to return - represents 3rd party gateway check token","nullable":true},"ExternalCustomerId":{"type":"string","description":"ExternalCustomerId if available to return - represents 3rd party gateway customer id tied to gateway token","nullable":true},"ResponseCode":{"type":"string","description":"Response Code - Successful = \"OK\" or \"0\", any other response code unsuccessful","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The NextBillDateResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"NextBillDateResponse":{"type":"object","properties":{"NextBillDate":{"type":"string","description":"Response Format Example:\r\n\"NextBillDate\": \"2029-07-23TT00:00:00\"","format":"date-time"}},"additionalProperties":false,"description":""}}}}
```

## The NotificationConfigurationDto object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"NotificationConfigurationDto":{"type":"object","properties":{"NotificationConfigId":{"type":"integer","format":"int32"},"NotificationConfigType":{"$ref":"#/components/schemas/NotificationConfigurationTypeDto"},"NotificationProtocolType":{"$ref":"#/components/schemas/NotificationProtocolTypeDto"},"IntegrationSourceId":{"type":"integer","format":"int32"},"NotificationUrl":{"type":"string","nullable":true},"NotificationEmailTo":{"type":"string","nullable":true},"NotificationEmailFrom":{"type":"string","nullable":true},"AccessToken":{"type":"string","nullable":true},"Retries":{"type":"integer","format":"int32"},"CreatedDate":{"type":"string","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"IsDeleted":{"type":"boolean"}},"additionalProperties":false},"NotificationConfigurationTypeDto":{"enum":[1,2,3,4,5,6,7,8],"type":"integer","format":"int32"},"NotificationProtocolTypeDto":{"enum":[1,2],"type":"integer","format":"int32"}}}}
```

## The NotificationConfigurationTypeDto object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"NotificationConfigurationTypeDto":{"enum":[1,2,3,4,5,6,7,8],"type":"integer","format":"int32"}}}}
```

## The NotificationProtocolTypeDto object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"NotificationProtocolTypeDto":{"enum":[1,2],"type":"integer","format":"int32"}}}}
```

## The NotificationsResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"NotificationsResponse":{"type":"object","properties":{"NotificationId":{"type":"integer","description":"Notification Id","format":"int32"},"NotificationGuid":{"type":"string","description":"Unique Notification identifier","format":"uuid"},"NotificationConfigId":{"type":"integer","description":"Notification Configuration Id set up per Integration Source","format":"int32"},"CreatedDate":{"type":"string","description":"Notification Created date","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"Payload":{"type":"string","description":"Notification payload sent out for transaction status","nullable":true},"RetryCount":{"type":"integer","description":"Number of retry attempts to send Notification payload to configured Notification URL","format":"int32","nullable":true},"Postdate":{"type":"string","description":"if available - the date the Notification was posted to configured Notification URL successfully","format":"date-time","nullable":true},"NotificationStatus":{"$ref":"#/components/schemas/NotificationStatus"},"NotificationUrl":{"type":"string","description":"Url configure to post notifications to. The Integration Source endpoint to post notification payload to.","nullable":true},"PaymentId":{"type":"integer","description":"Payment API PaymentId associated with the Notification","format":"int32","nullable":true},"PaymentExternalId":{"type":"string","description":"Payment API PaymentExternalId associated with the Notification","nullable":true}},"additionalProperties":false},"NotificationStatus":{"enum":[1,2,3,4,5],"type":"integer","format":"int32"}}}}
```

## The NotificationStatus object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"NotificationStatus":{"enum":[1,2,3,4,5],"type":"integer","format":"int32"}}}}
```

## The PayLinkPaymentLine object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PayLinkPaymentLine":{"required":["Recurring","Type"],"type":"object","properties":{"Amount":{"maxLength":7,"type":"string","description":"optional - transaction amount. If amount is not provided and single payment line, the amount field will be editable for input on form (range $0.01 to $99,999.99)","nullable":true},"Type":{"type":"integer","description":"required - Payment type identifier - possible values -\r\n        1 - Donation Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        12 - PaymentNoFee;","format":"int32"},"Recurring":{"type":"integer","description":"required - Indicates if the payment is recurring and billing frequency - possible values -\r\n        0 - Not recurring,\r\n        1 - Daily,\r\n        2 - Weekly,\r\n        3 - Bi-Weekly,\r\n        4 - Monthly,\r\n        5 - Bi-Monthly,\r\n        6 - Quarterly,\r\n        7 - Semi-Annually,\r\n        8 - Annually\r\n        9 - Semi-Monthly","format":"int32"},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true}},"additionalProperties":false}}}}
```

## The PayLinkRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PayLinkRequest":{"required":["ApiKey","PaymentLines","RedirectUrl"],"type":"object","properties":{"ApiKey":{"type":"string","description":"required - Your API key for pay link authentication."},"ProcessorGuid":{"type":"string","description":"optional - Identifies Processor being used by an API Partner","nullable":true},"IntegrationSource":{"type":"string","description":"optional and internal use - Identifies integrated Product","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"client ip address where transaction originates","nullable":true},"RedirectUrl":{"maxLength":500,"type":"string","description":"required - The URL to which the user will be redirected after payment."},"PaymentLines":{"type":"array","items":{"$ref":"#/components/schemas/PayLinkPaymentLine"},"description":"required - An array of payment line objects specifying amounts and types."},"TranId":{"maxLength":100,"type":"string","description":"optional (max: 100) for API Partner Reference or Invoice number and Dup Checking - unique id per Integration Source transaction (where integration source has DupCheckEnabled) that will be checked against successfully processed prior TranIds for Duplicates","nullable":true},"ShowTransactionId":{"type":"boolean","description":"optional - 'True' will display the TranId on the checkout form. If set 'True' and optional TranId is not set, our form will allow for input to set TranId in form UI","nullable":true},"TransactionIdText":{"maxLength":100,"type":"string","description":"optional (max: 100) - The text to display in front of the TranId. Example: Invoice#:","nullable":true},"PoweredByText":{"maxLength":100,"type":"string","description":"optional (max: 100) - Text to display for branding purposes (e.g., \"Powered by Your Company\").","nullable":true},"PoweredByUrl":{"maxLength":500,"type":"string","description":"optional (max: 500) - The URL users will be directed to when clicking the PoweredByText.","nullable":true},"DonateButtonText":{"maxLength":100,"type":"string","description":"optional (max: 100) - Text displayed on the submit payment button. Default is \"Submit Payment\".","nullable":true},"Language":{"maxLength":35,"type":"string","description":"optional (max: 35) - The language of the pay link session. Default is \"en\" for english.","nullable":true},"DefaultCountryCode":{"maxLength":2,"type":"string","description":"optional - 2 char country code. The default country code for user input. Example: \"US\".","nullable":true},"Theme":{"maxLength":5000,"type":"string","description":"optional (max: 5000) - CSS string for custom styling of the embedded session. Example: \".p-card-title{ color: rgb(255, 255, 255) !important; font-family: Open Sans !important}.EPF__body{ background-color: rgb(0, 0, 0); } .card {background: transparent !important;} .p-card{background: transparent !important;} .surface-card{background: transparent !important;}.p-card-title{ color: rgb(255, 255, 255) !important; font-family: Open Sans !important}.EPF__subheading__text{ color: rgb(255, 255, 255) !important; font-family: Open Sans !important}.EPF__body__text,.p-field-checkbox,.p-steps .p-steps-item .p-steps-title{ color: rgb(255, 255, 255) !important; font-family: Montserrat !important}.p-button-label{color:rgb(19, 5, 5) !important; font-family:Roboto;}.p-button{background-color:rgb(34, 136, 231) !important;border-radius:25px;border-color: transparent !important;}.p-button:hover{background-color:rgb(21, 110, 193) !important;}.p-button-label:hover{color:rgb(44, 30, 30) !important}.gpay-card-info-container{border-radius:25px!important;}.EPF__link__text{ color: rgb(216, 243, 255) !important; font-family: Montserrat !important}.EPF__form-element, .p-dropdown{ border:none !important; -webkit-box-shadow: none; box-shadow:none;  background-color: transparent; border-bottom: 0.055rem solid gray !important; }.p-steps .p-steps-item.p-highlight .p-steps-number{background: rgb(34, 136, 231) !important;}.epf-cc {color: rgb(255, 255, 255);}.epf-cc-selected {color: rgb(34, 136, 231);}.p-button {color: rgb(19, 5, 5) !important;}.EPF__form-element:focus{color: #495057; -webkit-box-shadow: none !important; box-shadow:none !important; background-color: #FFFFFF !important; border-color: #4A4A4A !important;}.EPF_form-element--error{ -webkit-box-shadow: none !important; box-shadow:none !important;  background-color: #F6CCD1 !important; border-color: #DC143C !important;}.EPF_form-element--error:focus{background-color: #F6CCD1 !important;}.has-error .input-group-addon { background-color: #F6CCD1 !important }.select--error { background: #F6CCD1 }.select--error ~ .fa-angle-down { display:none }.select--error:focus ~ .fa-angle-down { display: inline }.select--error:focus ~ .fa-exclamation-circle { display: none}.select--error:focus { background-color: #F6CCD1 }.exclamation-textArea { padding-top: 3.75rem }.form-field--invalid {border-color: #d0021b !important;}.form-field--invalid .p-dropdown {border-color: #d0021b !important;}.EPF__form-element, .p-dropdown{border-radius: 0 !important; }.EPF_form-element:focus{ -webkit-box-shadow: none !important; box-shadow:none !important;  background-color: transparent !important; border-color: #4A4A4A !important;}.EPF_form-element--error{ -webkit-box-shadow: none !important; box-shadow:none !important;  background-color: transparent !important; border-color: #DC143C !important;}.EPF_form-element--error:focus{background-color: #F6CCD1 !important; }.has-error .form-control{ -webkit-box-shadow: none !important; box-shadow:none !important;  background-color: transparent !important;}.has-error .form-control:focus{ -webkit-box-shadow: none !important; box-shadow:none !important;  background-color: transparent !important;}.EPF__form-element{color: rgb(255, 255, 255); }.p-inputtext{color: rgb(255, 255, 255)}.EPF__form-element::placeholder{color: rgb(255, 255, 255)}\"","nullable":true},"ThemeFonts":{"maxItems":50,"type":"array","items":{"type":"string"},"description":"optional - Array of fonts to be used in the session. example: \"\"Open Sans:400,500,600,700 \",\"Montserrat:400, 700 \",\"Roboto:400, 700 \".","nullable":true},"FirstName":{"maxLength":50,"type":"string","description":"optional (max: 50) - if set, this FirstName will display in payment form","nullable":true},"LastName":{"maxLength":50,"type":"string","description":"optional (max: 50) - if set, this LastName will display in payment form","nullable":true},"Email":{"maxLength":100,"type":"string","description":"option (max: 100) - valid contact email - - if set, this Email will display in payment form","format":"email","nullable":true},"Street":{"maxLength":50,"type":"string","description":"optional (max: 50) - if set, this Street will display in payment form","nullable":true},"City":{"maxLength":50,"type":"string","description":"optional (max: 50) - if set, this City will display in payment form","nullable":true},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000 - if set, this Zip will display in payment form","nullable":true},"State":{"maxLength":50,"type":"string","description":"optional - 2 char US state code, 3 char may be used for other non-US - if set, this State will display in payment form","nullable":true},"Country":{"maxLength":2,"type":"string","description":"optional - 2 char country code - if set, this Country will display in payment form","nullable":true},"Phone":{"maxLength":20,"type":"string","description":"optional (max: 20) - valid North America and AU patterns currently supported: 123-456-7890, (123) 456-7890, 123.456.7890, +12025550123, 1234567890, 0412345678, +61412345678","nullable":true},"TokenizeCard":{"type":"boolean","description":"optional - set to true to tokenize card or check at time of purchase","nullable":true},"TokenGuid":{"type":"string","description":"optional - TokenGuid to use to process transaction in payment form. If using ExternalCardToken or ExternalCheckToken instead of TokenGuid - Valid Token Guid from a Tokenized card through Embedded Payment Form/Payment API","nullable":true},"ExternalCardToken":{"maxLength":200,"type":"string","description":"optional (max: 200) - Customer credit card token generated outside the Embedded Form (e.g. ArgoFire). ExternalCardToken to use to process transaction in payment form.","nullable":true},"ExternalCheckToken":{"maxLength":200,"type":"string","description":"optional (max: 200) - Customer check token generated outside the Embedded Form (e.g. ArgoFire). ExternalCheckToken to use to process transaction in payment form.","nullable":true},"ExternalEventId":{"maxLength":10,"type":"string","description":"optional (max: 10) - Customer Event Id","nullable":true},"ExternalEventName":{"maxLength":500,"type":"string","description":"optional (max: 500) - Customer Event Name","nullable":true}},"additionalProperties":false},"PayLinkPaymentLine":{"required":["Recurring","Type"],"type":"object","properties":{"Amount":{"maxLength":7,"type":"string","description":"optional - transaction amount. If amount is not provided and single payment line, the amount field will be editable for input on form (range $0.01 to $99,999.99)","nullable":true},"Type":{"type":"integer","description":"required - Payment type identifier - possible values -\r\n        1 - Donation Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        12 - PaymentNoFee;","format":"int32"},"Recurring":{"type":"integer","description":"required - Indicates if the payment is recurring and billing frequency - possible values -\r\n        0 - Not recurring,\r\n        1 - Daily,\r\n        2 - Weekly,\r\n        3 - Bi-Weekly,\r\n        4 - Monthly,\r\n        5 - Bi-Monthly,\r\n        6 - Quarterly,\r\n        7 - Semi-Annually,\r\n        8 - Annually\r\n        9 - Semi-Monthly","format":"int32"},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true}},"additionalProperties":false}}}}
```

## The PayLinkResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PayLinkResponse":{"type":"object","properties":{"PayLinkUrl":{"type":"string","description":"a unique URL that when clicked, direct users to our FrontStream secure online payment page","nullable":true}},"additionalProperties":false}}}}
```

## The PaymentAchRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentAchRequest":{"required":["CheckAccountNumber","CheckAccountTypeId","CheckRoutingNumber","CheckTypeId","Email","IpAddress","NameOnCheck","State","Transactions"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"MKey":{"maxLength":500,"type":"string","description":"internal use - Used by FrontStream only","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"CheckRoutingNumber":{"maxLength":9,"type":"string","description":"required - Valid Check Bank Routing Number - formats -\r\nUS: Enter 9-digits,\r\nCA: Enter 9-digits (Format: 0YYYXXXXX: A mandatory leading zero. YYY: The 3-digit institution number. XXXXX: The 5-digit transit number),\r\nAU: Enter 6-digits - BSB Number (Bank State Branch) without hyphen"},"CheckAccountNumber":{"maxLength":20,"type":"string","description":"required - Valid Check Account Number - formats -\r\nUS: Enter 8-12 digits,\r\nCA: Enter 7-12 digits,\r\nAU: Enter 3-9 digits"},"CheckNumber":{"maxLength":10,"type":"string","description":"optional (max: 10) - Valid Check Number","nullable":true},"CheckAccountTypeId":{"type":"string","description":"required for Check ACH transactions - possible values -\r\n        1 - Checking,\r\n        2 - Savings"},"CheckTypeId":{"type":"string","description":"required for Check ACH transactions - possible values -\r\n        1 - Personal,\r\n        2 - Corporate,\r\n        3 - Government"},"NameOnCheck":{"maxLength":25,"type":"string","description":"required - Name on ACH Check Account"},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000","nullable":true},"Street":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing street","nullable":true},"Email":{"maxLength":100,"type":"string","description":"required - valid contact email","format":"email"},"City":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing city","nullable":true},"State":{"maxLength":50,"type":"string","description":"required - 2 char US state code, 3 char may be used for other non-US"},"Country":{"maxLength":2,"type":"string","description":"optional - 2 char country code","nullable":true},"Currency":{"maxLength":3,"type":"string","description":"optional - 3 char currency code - Example for US - \"USD\", for CA - \"CAD\"","nullable":true},"ExternalConstituentId":{"maxLength":200,"type":"string","description":"optional (max: 200) - Donor Identifier per Product","nullable":true},"FirstName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing First Name","nullable":true},"LastName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing Last Name","nullable":true},"BillingDescriptor":{"maxLength":22,"type":"string","description":"optional (max: 22) - descriptor to show on bank statement","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"required - client ip address where transaction originates"},"ExternalEventId":{"maxLength":10,"type":"string","description":"optional (max: 10) - Event Identifier per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"optional - Event Guid per Product","nullable":true},"ExternalEventName":{"maxLength":500,"type":"string","description":"optional (max: 500) - Event Name per Product","nullable":true},"ShippingFee":{"maxLength":7,"type":"string","description":"optional (max: 7) - fee for shipping that will be added to the total amount","nullable":true},"TaxableBenefit":{"maxLength":7,"type":"string","description":"optional (max: 7) - If part of the donation being passed in is taxable, include that amount here. No calculations are performed using this value, it is simply a placeholder to be used for your own reporting; all commission and credit card fees still apply as normal.","nullable":true},"TranId":{"maxLength":100,"type":"string","description":"optional (max: 100) - system unique id for Dup Checking per Integration Source transaction (where integration source has DupCheckEnabled) that will be checked against successfully processed prior TranIds for Duplicates","nullable":true},"EpfSessionId":{"type":"string","description":"internal use - FrontStream unique Embedded Payment Form Session Id if available","nullable":true},"Transactions":{"type":"array","items":{"$ref":"#/components/schemas/PaymentTransTypeRequest"},"description":"required - 1 to n transactions to break down transaction line items"},"PaymentMethodTypeId":{"type":"string","description":"optional - if used please set to 7 for ACH  or will be set internally","nullable":true},"Tokenize":{"type":"boolean","description":"optional - set to true to tokenize check at time of purchase","nullable":true}},"additionalProperties":false},"PaymentTransTypeRequest":{"required":["Amount","TransactionSourceGroupId"],"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","description":"required - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;\r\n        13 - EventDonationFee;\r\n        14 - SponsorshipFee\r\n        15 - MembershipFee"},"Amount":{"maxLength":7,"type":"string","description":"required - Amount of line item without the fees included, Payment api will calculate fees for you"},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intends to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)"},"CommissionRateOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - The percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract.","nullable":true},"CardProcessingFeeOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - Overrides the default percentage processing fee","nullable":true},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true},"Tip":{"maxLength":7,"type":"string","description":"optional (max: 7) - An amount taken up front for the API Partner if Donor decides to apply a tip. Added to the total amount to charge on the donor’s card . Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true},"Tax":{"maxLength":7,"type":"string","description":"optional (max: 7) - A tax amount taken up front. Added to the total amount to charge on the donor’s card. Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The PaymentExportReportRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentExportReportRequest":{"type":"object","properties":{"Filters":{"type":"array","items":{"$ref":"#/components/schemas/SelectedConstraintDto"},"description":"Report Filters","nullable":true},"SortColumns":{"type":"array","items":{"$ref":"#/components/schemas/SortColumnDto"},"description":"Sort Columns","nullable":true},"PageSize":{"type":"integer","description":"How many records to return per page.","format":"int32"},"PageIndex":{"type":"integer","description":"Which page of results to return. Starts at 1 (0 will also return the first page)","format":"int32"},"Format":{"type":"string","description":"Determines which file type the report will be exported to. Valid values: \"csv\" or \"excel\"","nullable":true}},"additionalProperties":false,"description":""},"SelectedConstraintDto":{"type":"object","properties":{"Name":{"type":"string","nullable":true},"Operation":{"$ref":"#/components/schemas/ConstraintOperation"},"Values":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false},"ConstraintOperation":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"type":"integer","format":"int32"},"SortColumnDto":{"type":"object","properties":{"Name":{"type":"string","nullable":true},"Descending":{"type":"boolean"},"Order":{"type":"integer","format":"int32"}},"additionalProperties":false}}}}
```

## The PaymentMethodTypeEnum object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentMethodTypeEnum":{"enum":[0,1,2,3,4,5,6,7,8,9,10],"type":"integer","format":"int32"}}}}
```

## The PaymentMethodTypeResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentMethodTypeResponse":{"type":"object","properties":{"PaymentMethodTypeId":{"$ref":"#/components/schemas/PaymentMethodTypeEnum"},"PaymentMethodTypeValue":{"type":"string","description":"possible values :\r\n\"NONE\" = 0,\r\n\"AMEX\" = 1,\r\n\"MASTERCARD\" = 2,\r\n\"VISA\" = 3,\r\n\"DISCOVER\" = 4,\r\n\"DINERSCLUB\" = 5,\r\n\"JCB\" = 6,\r\n\"ACH\" = 7,\r\n\"GOOGLEPAY\" = 8,\r\n\"APPLEPAY\" = 9\r\n\"STRIPE\" = 10","nullable":true}},"additionalProperties":false},"PaymentMethodTypeEnum":{"enum":[0,1,2,3,4,5,6,7,8,9,10],"type":"integer","format":"int32"}}}}
```

## The PaymentReportRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentReportRequest":{"type":"object","properties":{"Filters":{"type":"array","items":{"$ref":"#/components/schemas/SelectedConstraintDto"},"description":"Report Filters","nullable":true},"SortColumns":{"type":"array","items":{"$ref":"#/components/schemas/SortColumnDto"},"description":"Sort Columns","nullable":true},"PageSize":{"type":"integer","description":"How many records to return per page.","format":"int32"},"PageIndex":{"type":"integer","description":"Which page of results to return. Starts at 1 (0 will also return the first page)","format":"int32"}},"additionalProperties":false,"description":""},"SelectedConstraintDto":{"type":"object","properties":{"Name":{"type":"string","nullable":true},"Operation":{"$ref":"#/components/schemas/ConstraintOperation"},"Values":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false},"ConstraintOperation":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"type":"integer","format":"int32"},"SortColumnDto":{"type":"object","properties":{"Name":{"type":"string","nullable":true},"Descending":{"type":"boolean"},"Order":{"type":"integer","format":"int32"}},"additionalProperties":false}}}}
```

## The PaymentRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentRequest":{"required":["Email","IpAddress","NameOnCard","Transactions"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"MKey":{"maxLength":500,"type":"string","description":"internal use - Used by FrontStream only","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"CardNum":{"maxLength":30,"type":"string","description":"optional - Valid Credit card number - required for non-Wallet transaction","nullable":true},"CardType":{"maxLength":20,"type":"string","description":"optional (max: 20) - \"American Express\", \"Mastercard\", \"Visa\", \"Discover\", \"Diners Club\" - will be set internally based on cardNum","nullable":true},"ExpMonth":{"maxLength":2,"type":"string","description":"optional (max: 2) - example: \"01\" for January - required for non-Wallet transaction","nullable":true},"ExpYear":{"maxLength":2,"type":"string","description":"optional (max: 2) - example: \"29\" for 2029 - required for non-Wallet transaction","nullable":true},"CVNum":{"maxLength":4,"type":"string","description":"optional (max: 4) - valid CVV - please provide for CVV checks","nullable":true},"NameOnCard":{"maxLength":25,"type":"string","description":"required - Name on Card"},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) - please provide for best interchange and avs checks - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000","nullable":true},"Street":{"maxLength":50,"type":"string","description":"optional (max: 50) - please provide for best interchange and avs checks","nullable":true},"Email":{"maxLength":100,"type":"string","description":"required - valid contact email","format":"email"},"City":{"maxLength":50,"type":"string","description":"optional (max: 50) - please provide for best interchange and avs checks","nullable":true},"State":{"maxLength":50,"type":"string","description":"optional - 2 char US state code, 3 char may be used for other non-US","nullable":true},"Country":{"maxLength":2,"type":"string","description":"optional (max: 2) - 2 char country code","nullable":true},"Currency":{"maxLength":3,"type":"string","description":"optional (max: 3) - 3 char currency code - Example for US - \"USD\", for CA - \"CAD\"","nullable":true},"ExternalConstituentId":{"maxLength":200,"type":"string","description":"optional (max: 200) - Donor Identifier per Product","nullable":true},"FirstName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing First Name","nullable":true},"LastName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing Last Name","nullable":true},"BillingDescriptor":{"maxLength":22,"type":"string","description":"optional (max: 22) - descriptor to show on bank statement","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"required - client ip address where transaction originates"},"ExternalEventId":{"maxLength":10,"type":"string","description":"optional (max: 10) - Event Identifier per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"optional - Event Guid per Product","nullable":true},"ExternalEventName":{"maxLength":500,"type":"string","description":"optional (max: 500) - Event Name per Product","nullable":true},"ShippingFee":{"maxLength":7,"type":"string","description":"optional (max: 7) - fee for shipping that will be added to the total amount","nullable":true},"TaxableBenefit":{"maxLength":7,"type":"string","description":"optional (max: 7) - If part of the donation being passed in is taxable, include that amount here. No calculations are performed using this value, it is simply a placeholder to be used for your own reporting; all commission and credit card fees still apply as normal.","nullable":true},"TranId":{"maxLength":100,"type":"string","description":"optional (max: 100) - system unique id for Dup Checking per Integration Source transaction (where integration source has DupCheckEnabled) that will be checked against successfully processed prior TranIds for Duplicates","nullable":true},"EpfSessionId":{"type":"string","description":"internal use - FrontStream unique Embedded Payment Form Session Id if available","nullable":true},"Transactions":{"type":"array","items":{"$ref":"#/components/schemas/PaymentTransTypeRequest"},"description":"required - 1 to n transactions to break down transaction line items"},"AFShieldAdditional":{"$ref":"#/components/schemas/AFShieldPaymentRequest"},"PaymentMethodTypeId":{"type":"string","description":"internal use - GooglePay (8) or Apple Pay (9) - possible values -\r\n        \"8\" - GOOGLEPAY,\r\n        \"9\" - APPLEPAY","nullable":true},"ExternalPaymentData":{"maxLength":5000,"type":"string","description":"internal use for Wallet transactions","nullable":true},"Surcharge":{"maxLength":7,"type":"string","description":"optional (max: 7) - calculated surcharge amount that will be added to the total amount","nullable":true},"Tokenize":{"type":"boolean","description":"optional - set to true to tokenize card at time of purchase","nullable":true}},"additionalProperties":false,"description":""},"PaymentTransTypeRequest":{"required":["Amount","TransactionSourceGroupId"],"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","description":"required - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;\r\n        13 - EventDonationFee;\r\n        14 - SponsorshipFee\r\n        15 - MembershipFee"},"Amount":{"maxLength":7,"type":"string","description":"required - Amount of line item without the fees included, Payment api will calculate fees for you"},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intends to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)"},"CommissionRateOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - The percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract.","nullable":true},"CardProcessingFeeOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - Overrides the default percentage processing fee","nullable":true},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true},"Tip":{"maxLength":7,"type":"string","description":"optional (max: 7) - An amount taken up front for the API Partner if Donor decides to apply a tip. Added to the total amount to charge on the donor’s card . Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true},"Tax":{"maxLength":7,"type":"string","description":"optional (max: 7) - A tax amount taken up front. Added to the total amount to charge on the donor’s card. Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true}},"additionalProperties":false,"description":""},"AFShieldPaymentRequest":{"type":"object","properties":{"ProductDescription":{"maxLength":256,"type":"string","nullable":true},"ProductItem":{"maxLength":256,"type":"string","nullable":true},"ProductType":{"maxLength":256,"type":"string","nullable":true},"ProductQuantity":{"maxLength":3,"type":"string","nullable":true},"SessionId":{"maxLength":32,"type":"string","nullable":true},"BillToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShippingAddressStreet1":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressStreet2":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressCountry":{"maxLength":2,"type":"string","nullable":true},"ShippingAddressCity":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressEmail":{"maxLength":64,"type":"string","format":"email","nullable":true},"ShippingAddressName":{"maxLength":64,"type":"string","nullable":true},"ShippingAddressZip":{"maxLength":10,"type":"string","nullable":true},"ShippingAddressState":{"maxLength":50,"type":"string","nullable":true},"ShipToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShipToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"ShipToStreetForUK":{"maxLength":256,"type":"string","nullable":true},"BillToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"BillToStreetForUK":{"maxLength":256,"type":"string","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The PaymentResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentResponse":{"type":"object","properties":{"Successful":{"type":"boolean","description":"As one would guess, this is \"true\" if the transaction was processed successfully, and \"false\" if the transaction was not processed successfully."},"Message":{"type":"string","description":"Payment Gateway response message","nullable":true},"ProcessorMessage":{"type":"string","description":"Response from the processing bank.","nullable":true},"AuthCode":{"type":"string","description":"AuthCode from the processor.","nullable":true},"TransactionId":{"type":"string","description":"Payment Gateway TransactionId","nullable":true},"PaymentGuid":{"type":"string","description":"Payment API Payment GUID","format":"uuid"},"PaymentId":{"type":"integer","description":"Payment API Payment Id","format":"int32"},"ResponseCode":{"type":"string","description":"Response Code - Approved = 0, Not processed = -100 with more possible values - https://developers.frontstream.com/argofire/full-endpoint-reference-and-tools/general-info-and-utilities#argofire-response-codes","nullable":true},"PaymentResult":{"$ref":"#/components/schemas/PaymentResult"},"ProcessStatus":{"$ref":"#/components/schemas/ProcessStatus"},"TotalAmount":{"type":"number","description":"The total amount processed toward the cardholder's account.","format":"double"},"TotalSurcharge":{"type":"number","description":"The total surcharge amount if available.","format":"double","nullable":true},"AVSStreetStatus":{"type":"string","description":"Address Verification Street Status if available.","nullable":true},"AVSZipStatus":{"type":"string","description":"Address Verification Zip Status if available.","nullable":true},"AVSResponse":{"type":"string","description":"Address Verification Response if available. AVS and CVV response values covered more here - https://developers.frontstream.com/argofire/full-endpoint-reference-and-tools/general-info-and-utilities#argofire-response-codes","nullable":true},"CVVResponse":{"type":"string","description":"Card Verification Response if available. AVS and CVV response values covered more here - https://developers.frontstream.com/argofire/full-endpoint-reference-and-tools/general-info-and-utilities#argofire-response-codes","nullable":true},"ExternalCardToken":{"type":"string","description":"ExternalCardToken if available to return - represents 3rd party gateway card token","nullable":true},"ExternalCheckToken":{"type":"string","description":"ExternalCheckToken if available to return - represents 3rd party gateway check token","nullable":true},"ExternalCustomerId":{"type":"string","description":"ExternalCustomerId if available to return - represents 3rd party gateway customer id tied to gateway token","nullable":true},"TokenGuid":{"type":"string","description":"Payment API Token GUID if available to return","format":"uuid","nullable":true},"TransactionFees":{"type":"array","items":{"$ref":"#/components/schemas/FeeResponse"},"description":"Fee Response","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use","format":"uuid"},"ProcessorGuid":{"type":"string","description":"ProcessorGuid used","format":"uuid","nullable":true},"FirstName":{"type":"string","nullable":true},"LastName":{"type":"string","nullable":true},"EmailAddress":{"type":"string","nullable":true},"PostalCode":{"type":"string","nullable":true},"AddressLine1":{"type":"string","nullable":true},"City":{"type":"string","nullable":true},"ProvinceCode":{"type":"string","nullable":true},"CountryCode":{"type":"string","nullable":true},"CardNum":{"type":"string","description":"last 4 digits of card","nullable":true},"CardType":{"type":"string","description":"possible values if available: American Express, Mastercard, Visa, Discover, Diners Club, Undefined","nullable":true},"ExpMonth":{"type":"string","nullable":true},"ExpYear":{"type":"string","nullable":true},"Currency":{"type":"string","nullable":true},"PaymentMethodTypeId":{"type":"integer","description":"possible values if available:\r\nNone = 0,\r\nAmericanExpress = 1,\r\nMasterCard = 2,\r\nVisa = 3,\r\nDiscover = 4,\r\nDinersClub = 5,\r\nACH = 7,\r\nGOOGLEPAY = 8,\r\nAPPLEPAY = 9","format":"int32","nullable":true},"IsSurchargeEligible":{"type":"boolean","description":"Was card used Surcharge eligible","nullable":true},"CheckAccountNum":{"type":"string","description":"last 4 digits of check account","nullable":true},"TranId":{"type":"string","description":"unique tran id per Integration Source if available","nullable":true},"EpfSessionId":{"type":"string","description":"FrontStream unique Embedded Payment Form Session Id if available","nullable":true},"PaymentDate":{"type":"string","description":"Payment Date of transaction","format":"date-time"}},"additionalProperties":false,"description":"See more response code definitions here: https://developers.frontstream.com/welcome-to-our-payment-api/api-references/test-payment-api-features/response-codes"},"PaymentResult":{"enum":[1,2,3,4,5,6],"type":"integer","format":"int32"},"ProcessStatus":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12],"type":"integer","format":"int32"},"FeeResponse":{"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","nullable":true},"PaymentAmount":{"type":"number","description":"This is the amount charged to the donor. Will be equal to the sum of the Amount parameters if payFee=false, but if payFee=true, then this will be the amount that will be charged to the donor in order to have the net post-disbursement donation be equal to the Amount parameters.","format":"double","nullable":true},"CardFeeRate":{"type":"number","description":"example 2.5% - applied to EVERY donation. This is the FrontStream card processing fee. The percentage of the PaymentAmount that will be taken for credit card fees. Expressed as a human-readable percentage rather than a decimal value, it is intended to be able to be displayed directly on a page without needing to be converted.","format":"double","nullable":true},"CardFeeAmount":{"type":"number","description":"This is the amount that is owed to the gateway for the example 2.5% that FrontStream collects from the transaction.\r\n 2.5% of transaction amount if donor is not paying the fee, otherwise 2.5% of the transaction + card fee.","format":"double","nullable":true},"CardTypeFeeAmount":{"type":"number","description":"A per transaction fee configured by card type (VI, MC, DI, AMEX, etc.) per API Partner's Contract other wise 0 (zero)","format":"double","nullable":true},"TotalCommissionRate":{"type":"number","description":"The Total percentage of Commissions that FrontStream takes from a given transaction.\r\nThis rate = Partner CommissionRate + FS CommissionRate","format":"double","nullable":true},"TotalCommissionAmount":{"type":"number","description":"The product of the transaction times the Total commission rate.","format":"double","nullable":true},"PartnerCommissionRate":{"type":"number","description":"The Partner Commission percentage taken on behalf of the Partner from a given transaction.","format":"double","nullable":true},"PartnerCommissionAmount":{"type":"number","description":"The product of the transaction times the Partner commission rate.","format":"double","nullable":true},"FsCommissionRate":{"type":"number","description":"The FrontStream Commission percentage that FrontStream takes from a given transaction.","format":"double","nullable":true},"FsCommissionAmount":{"type":"number","description":"The product of the transaction times the FrontStream commission rate.","format":"double","nullable":true},"TotalFees":{"type":"number","description":"The sum of all fees applied to a transaction amount. (TotalCommission + CardFee + FlatFee + CardFeeOnFee)","format":"double","nullable":true},"MaxOverridePartnerCommissionRate":{"type":"number","description":"The derived minimum partner override rate and maximum partner override rate\r\n\r\nMaxOverridePartnerCommissionRate = TotalFees = (PartnerCommission rate) + (Card Fee Rate) + (Fs Commission Rate)\r\nMinOverridePartnerCommissionRate = (Card Fee rate) + (Fs Commission rate)","format":"double"},"MinOverridePartnerCommissionRate":{"type":"number","format":"double"},"PerTransFee":{"type":"number","description":"The flat amount that will be taken from the PaymentAmount for any Per-Transaction Fees as configured in your contract.","format":"double","nullable":true},"Tip":{"type":"number","description":"The flat amount that will be paid out to the API Partner if Donor decides to add a tip regardless of payFee true or false.","format":"double"},"CardFeeOnFeeAmount":{"type":"number","format":"double","nullable":true},"Tax":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The PaymentResult object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentResult":{"enum":[1,2,3,4,5,6],"type":"integer","format":"int32"}}}}
```

## The PaymentTokenRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentTokenRequest":{"required":["Transactions"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"TokenGuid":{"type":"string","description":"optional if using ExternalCardToken or ExternalCheckToken instead of TokenGuid - Valid Token Guid from a Tokenized card through Payment API","nullable":true},"ExternalCardToken":{"maxLength":200,"type":"string","description":"internal use","nullable":true},"ExternalCheckToken":{"maxLength":200,"type":"string","description":"internal use","nullable":true},"TranId":{"maxLength":100,"type":"string","description":"optional (max: 100) - system unique id for Dup Checking per Integration Source transaction (where integration source has DupCheckEnabled) that will be checked against successfully processed prior TranIds for Duplicates","nullable":true},"EpfSessionId":{"type":"string","description":"internal use - FrontStream unique Embedded Payment Form Session Id if available","nullable":true},"BillingDescriptor":{"maxLength":22,"type":"string","description":"optional (max: 22) - descriptor to show on bank statement","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"client ip address (max: 40) where transaction originates","nullable":true},"ShippingFee":{"maxLength":7,"type":"string","description":"optional (max: 7) - fee for shipping that will be added to the total amount","nullable":true},"TaxableBenefit":{"maxLength":7,"type":"string","description":"optional (max: 7) - If part of the donation being passed in is taxable, include that amount here. No calculations are performed using this value, it is simply a placeholder to be used for your own reporting; all commission and credit card fees still apply as normal.","nullable":true},"Transactions":{"type":"array","items":{"$ref":"#/components/schemas/PaymentTransTypeRequest"},"description":"required - 1 to n transactions to break down transaction line items"},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) to override zip created during token creation - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000","nullable":true},"Street":{"maxLength":50,"type":"string","description":"optional (max: 50) to override street created during token creation","nullable":true},"City":{"maxLength":50,"type":"string","description":"optional (max: 50) to override city created during token creation","nullable":true},"State":{"maxLength":50,"type":"string","description":"optional (max: 50) to override state created during token creation","nullable":true},"Country":{"maxLength":2,"type":"string","description":"optional (max: 2) to override country created during token creation","nullable":true},"Currency":{"maxLength":3,"type":"string","description":"optional (max: 3) to override currency created during token creation","nullable":true},"ExternalConstituentId":{"maxLength":200,"type":"string","description":"optional (max: 200) - Donor Identifier per Product","nullable":true},"ExternalEventId":{"maxLength":10,"type":"string","description":"optional (max: 10) - Event Identifier per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"optional - Event Guid per Product","nullable":true},"ExternalEventName":{"maxLength":500,"type":"string","description":"optional (max: 500) - Event Name per Product","nullable":true},"AFShieldAdditional":{"$ref":"#/components/schemas/AFShieldPaymentRequest"},"Surcharge":{"maxLength":7,"type":"string","description":"optional (max: 7) - calculated surcharge amount","nullable":true}},"additionalProperties":false,"description":""},"PaymentTransTypeRequest":{"required":["Amount","TransactionSourceGroupId"],"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","description":"required - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;\r\n        13 - EventDonationFee;\r\n        14 - SponsorshipFee\r\n        15 - MembershipFee"},"Amount":{"maxLength":7,"type":"string","description":"required - Amount of line item without the fees included, Payment api will calculate fees for you"},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intends to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)"},"CommissionRateOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - The percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract.","nullable":true},"CardProcessingFeeOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - Overrides the default percentage processing fee","nullable":true},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true},"Tip":{"maxLength":7,"type":"string","description":"optional (max: 7) - An amount taken up front for the API Partner if Donor decides to apply a tip. Added to the total amount to charge on the donor’s card . Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true},"Tax":{"maxLength":7,"type":"string","description":"optional (max: 7) - A tax amount taken up front. Added to the total amount to charge on the donor’s card. Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true}},"additionalProperties":false,"description":""},"AFShieldPaymentRequest":{"type":"object","properties":{"ProductDescription":{"maxLength":256,"type":"string","nullable":true},"ProductItem":{"maxLength":256,"type":"string","nullable":true},"ProductType":{"maxLength":256,"type":"string","nullable":true},"ProductQuantity":{"maxLength":3,"type":"string","nullable":true},"SessionId":{"maxLength":32,"type":"string","nullable":true},"BillToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShippingAddressStreet1":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressStreet2":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressCountry":{"maxLength":2,"type":"string","nullable":true},"ShippingAddressCity":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressEmail":{"maxLength":64,"type":"string","format":"email","nullable":true},"ShippingAddressName":{"maxLength":64,"type":"string","nullable":true},"ShippingAddressZip":{"maxLength":10,"type":"string","nullable":true},"ShippingAddressState":{"maxLength":50,"type":"string","nullable":true},"ShipToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShipToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"ShipToStreetForUK":{"maxLength":256,"type":"string","nullable":true},"BillToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"BillToStreetForUK":{"maxLength":256,"type":"string","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The PaymentTransTypeRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"PaymentTransTypeRequest":{"required":["Amount","TransactionSourceGroupId"],"type":"object","properties":{"TransactionSourceGroupId":{"type":"string","description":"required - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;\r\n        13 - EventDonationFee;\r\n        14 - SponsorshipFee\r\n        15 - MembershipFee"},"Amount":{"maxLength":7,"type":"string","description":"required - Amount of line item without the fees included, Payment api will calculate fees for you"},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intends to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)"},"CommissionRateOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - The percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract.","nullable":true},"CardProcessingFeeOverride":{"maxLength":7,"type":"string","description":"optional (max: 7) - Overrides the default percentage processing fee","nullable":true},"ExternalLineId":{"maxLength":100,"type":"string","description":"optional (max: 100) - use this to track individual line item IDs if necessary.","nullable":true},"Tip":{"maxLength":7,"type":"string","description":"optional (max: 7) - An amount taken up front for the API Partner if Donor decides to apply a tip. Added to the total amount to charge on the donor’s card . Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true},"Tax":{"maxLength":7,"type":"string","description":"optional (max: 7) - A tax amount taken up front. Added to the total amount to charge on the donor’s card. Card fee calculations are performed using this value; all commission and credit card fees still apply as normal.","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The ProblemDetails object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## The ProcessStatus object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"ProcessStatus":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12],"type":"integer","format":"int32"}}}}
```

## The RecurringProfileResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"RecurringProfileResponse":{"type":"object","properties":{"Successful":{"type":"boolean","description":"For all success responses, this will be True."},"Message":{"type":"string","description":"Recurring Profile response message","nullable":true},"ProcessorMessage":{"type":"string","description":"Recurring Profile processor response message","nullable":true},"TransactionId":{"type":"string","description":"Not currently used and will be null","nullable":true},"RecurringProfileGuid":{"type":"string","description":"GUID that identifies this particular recurring billing contract. This value is used for both the Update Recurring Profile and Cancel Recurring Profile endpoints.","format":"uuid"},"RecurringProfileId":{"type":"integer","description":"An integer identifier for this particular recurring billing contract. Is not used elsewhere in the API.","format":"int32"},"ResponseCode":{"type":"string","description":"Response Code - Successful = \"OK\" or \"0\", any other response code unsuccessful","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The RefundRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"RefundRequest":{"required":["Reason"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"PaymentGuid":{"type":"string","description":"optional if not using PaymentExternalId - Payment API PaymentGuid to be refunded","nullable":true},"PaymentExternalId":{"maxLength":200,"type":"string","description":"optional (max: 200) if not using PaymentGuid - 3rd Party Payment External Id to be refunded","nullable":true},"Reason":{"maxLength":500,"type":"string","description":"required - reason for refund request"}},"additionalProperties":false,"description":""}}}}
```

## The RefundResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"RefundResponse":{"type":"object","properties":{"Successful":{"type":"boolean","description":"\"true\" if the transaction was processed successfully, and \"false\" if the transaction was not processed successfully."},"Message":{"type":"string","nullable":true},"ProcessorMessage":{"type":"string","nullable":true},"TransactionId":{"type":"string","nullable":true},"OriginalTransactionId":{"type":"string","nullable":true},"PaymentGuid":{"type":"string","format":"uuid"},"PaymentId":{"type":"integer","format":"int32"},"ResponseCode":{"type":"string","nullable":true},"PaymentResult":{"$ref":"#/components/schemas/PaymentResult"},"ProcessStatus":{"$ref":"#/components/schemas/ProcessStatus"}},"additionalProperties":false,"description":""},"PaymentResult":{"enum":[1,2,3,4,5,6],"type":"integer","format":"int32"},"ProcessStatus":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12],"type":"integer","format":"int32"}}}}
```

## The SelectedConstraintDto object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"SelectedConstraintDto":{"type":"object","properties":{"Name":{"type":"string","nullable":true},"Operation":{"$ref":"#/components/schemas/ConstraintOperation"},"Values":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false},"ConstraintOperation":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"type":"integer","format":"int32"}}}}
```

## The SortColumnDto object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"SortColumnDto":{"type":"object","properties":{"Name":{"type":"string","nullable":true},"Descending":{"type":"boolean"},"Order":{"type":"integer","format":"int32"}},"additionalProperties":false}}}}
```

## The SurchargeConfigResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"SurchargeConfigResponse":{"type":"object","properties":{"SurchargeEnabled":{"type":"boolean","description":"Is Surcharging enabled - true/false returned based on configured Merchant Surcharge."},"SurchargeRate":{"type":"string","description":"example 2.9900 in d.dddd format - configured Merchant Surcharge Percentage Rate.","nullable":true},"SurchargeStartDate":{"type":"string","description":"Surcharge Start Date based on configured Merchant Surcharge.\r\nDate Format - yyyy-MM-dd\r\nResponse Example:\r\n\"SurchargeStartDate\": \"2025-01-31\"","nullable":true}},"additionalProperties":false}}}}
```

## The SurchargeResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"SurchargeResponse":{"type":"object","properties":{"Amount":{"type":"string","description":"This is the original amount submitted for Surcharge calculation.","nullable":true},"SurchargeAmount":{"type":"string","description":"This is the calculated surcharge amount based on configured Merchant Surcharge Percentage Rate and submitted amount.\r\nd.dd format","nullable":true},"SurchargeRate":{"type":"string","description":"example 2.9900 in d.dddd format - configured Merchant Surcharge Percentage Rate.","nullable":true}},"additionalProperties":false}}}}
```

## The TransactionLinesDetail object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"TransactionLinesDetail":{"type":"object","properties":{"PaymentGuid":{"type":"string","description":"Payment API Payment GUID for reference","format":"uuid"},"PaymentLineId":{"type":"integer","description":"Payment API Payment Line Identifier for reference","format":"int32"},"PaymentId":{"type":"integer","description":"Payment API Payment Identifier for reference","format":"int32"},"CreatedDate":{"type":"string","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"Amount":{"type":"number","description":"Transaction Line Amount","format":"double"},"CommissionAmount":{"type":"number","format":"double","nullable":true},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intended to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)","nullable":true},"TransactionSourceGroupId":{"type":"integer","format":"int32","nullable":true},"CardFeeRate":{"type":"number","description":"example 2.5% - applied to EVERY donation. This is the FrontStream card processing fee. The percentage of the PaymentAmount that will be taken for credit card fees. Expressed as a human-readable percentage rather than a decimal value, it is intended to be able to be displayed directly on a page without needing to be converted.","format":"double","nullable":true},"CardFeeAmount":{"type":"number","description":"This is the amount that is owed to the gateway for the example 2.5% that FrontStream collects from the transaction.\r\n 2.5% of transaction amount if donor is not paying the fee, otherwise 2.5% of the transaction + card fee.","format":"double","nullable":true},"CardTypeFeeAmount":{"type":"number","description":"A per-transaction fee configured by card type (VI, MC, DI, AMEX, etc.) per API Partner's Contract other wise 0 (zero)","format":"double","nullable":true},"TotalCommissionRate":{"type":"number","description":"The Total percentage of Commissions that FrontStream takes from a given transaction.\r\nThis rate = Partner CommissionRate + FS CommissionRate","format":"double","nullable":true},"TotalCommissionAmount":{"type":"number","description":"The product of the transaction times the Total commission rate.","format":"double","nullable":true},"PartnerCommissionRate":{"type":"number","description":"The Partner Commission percentage taken on behalf of the Partner from a given transaction.","format":"double","nullable":true},"PartnerCommissionAmount":{"type":"number","description":"The product of the transaction times the Partner commission rate.","format":"double","nullable":true},"FsCommissionRate":{"type":"number","description":"The FrontStream Commission percentage that FrontStream takes from a given transaction.","format":"double","nullable":true},"FsCommissionAmount":{"type":"number","description":"The product of the transaction times the FrontStream commission rate.","format":"double","nullable":true},"TotalFees":{"type":"number","description":"The sum of all fees applied to a transaction amount. (TotalCommission + CardFee + FlatFee + CardFeeOnFee)","format":"double","nullable":true},"PerTransFee":{"type":"number","description":"The flat amount that will be taken from the PaymentAmount for any Per-Transaction Fees as configured in your contract.","format":"double","nullable":true},"ExternalLineId":{"type":"string","description":"optional - used to track individual line item IDs if necessary.","nullable":true},"Tip":{"type":"number","format":"double","nullable":true},"CommissionRateOverride":{"type":"number","format":"double","nullable":true},"Tax":{"type":"number","description":"Transaction Line Tax","format":"double","nullable":true},"CardFeeOnFeeAmount":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"Transaction Line Details"}}}}
```

## The TransactionReportDetail object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"TransactionReportDetail":{"type":"object","properties":{"PaymentDate":{"type":"string","description":"Payment Date of transaction","format":"date-time"},"PaymentGuid":{"type":"string","description":"Payment API Payment GUID","format":"uuid"},"PaymentId":{"type":"integer","description":"Payment API Payment Id","format":"int32"},"PaymentExternalId":{"type":"string","description":"Payment Gateway TransactionId - is the TransactionId of a Payment Response object","nullable":true},"OriginalExternalID":{"type":"string","description":"Original Payment Gateway TransactionId - is the Original TransactionId of a Payment Response object","nullable":true},"ProcessStatus":{"$ref":"#/components/schemas/ProcessStatus"},"ProcessStatusValue":{"type":"string","description":"Process Status value - possible values: NotProcessed = 1 \"Not Processed\", Authorized = 2 \"Awaiting Authorization\", Settled = 4 \"Authorized\", Rejected = 5 \"Rejected\", RefundRequired = 6 \"Refund Required\", AwaitingRefund = 7 \"Awaiting Refund\", Refunded = 8 \"Refunded\", Cancelled = 9 \"Cancelled\", Chargeback = 10 \"Chargeback\", RefundRejected = 11 \"Refund Rejected\"","nullable":true},"PaymentResult":{"$ref":"#/components/schemas/PaymentResult"},"PaymentResultValue":{"type":"string","description":"Payment Result value - possible values: \"Pending\" = 1, \"Processing\" = 2, \"Successful\" = 3, \"Failed\" = 4, \"Refunded\" = 5, \"Cancelled\" = 6","nullable":true},"ExternalConstituentId":{"type":"string","description":"Donor Identifier","nullable":true},"FirstName":{"type":"string","description":"billing First Name","nullable":true},"LastName":{"type":"string","description":"billing Last Name","nullable":true},"Email":{"type":"string","description":"contact email","nullable":true},"CardHolderName":{"type":"string","description":"Name on Card","nullable":true},"CCLastDigits":{"type":"string","description":"if available - last 4 digits of card","nullable":true},"ExpirationDate":{"type":"string","description":"MM/YY format","nullable":true},"CCType":{"type":"string","description":"possible values if available: \"American Express\", \"Mastercard\", \"Visa\", \"Discover\", \"Diners Club\", Undefined","nullable":true},"CoverTheFee":{"type":"string","description":"YES/NO - did donor Cover the Fees on Donation.","nullable":true},"DonationAmount":{"type":"number","description":"The total donation amount requested.","format":"double"},"CoverTheFeeAmount":{"type":"number","description":"The total donation amount requested.","format":"double"},"TransactionAmount":{"type":"number","description":"The total transaction amount processed toward the cardholder's account.","format":"double"},"ServiceFees":{"type":"number","description":"The calculated total fees amount of the list of transaction lines.","format":"double"},"AmountPaid":{"type":"number","description":"The total transaction amount minus processing Fees","format":"double"},"Taxes":{"type":"number","description":"The calculated total tax amount of the list of transaction lines if any.","format":"double"},"Recurring":{"type":"string","description":"if available - YES/NO - if recurring billing contract used for transaction","nullable":true},"RecurringFrequency":{"type":"string","description":"if available - if recurring billing contract used for transaction\r\nPossible values:\r\n    \"Daily\", (once per day)\r\n    \"Weekly\", (once per week)\r\n    \"Bi-Weekly\", (once per 2 weeks)\r\n    \"Monthly\", (once per month)\r\n    \"Bi-Monthly\", (Once every 2 months)\r\n    \"Semi-Monthly\", (twice per month)\r\n    \"Quarterly\", (four times per year)\r\n    \"Semi-Annually\", (twice per year)\r\n    \"Annually\" (once per year)","nullable":true},"RecurringProfileGuid":{"type":"string","description":"if available - GUID that identifies the recurring billing contract used for transaction","format":"uuid","nullable":true},"NextBillDate":{"type":"string","description":"if available - Next Billing date of the recurring billing contract used for transaction","format":"date-time","nullable":true},"DistributionType":{"$ref":"#/components/schemas/DistributionType"},"DistributionTypeValue":{"type":"string","description":"if available for Non-Profit Charity data - Distribution Type value - possible values: \"Direct Deposit\" = 1, \"Check\" = 2. Indicates the payment method that was used to disburse the funds to the Charity.","nullable":true},"DistributionStatus":{"type":"string","description":"if available for Non-Profit Charity data - possible values: \"Processing\", \"Settled\", \"Refunded\", \"Voided\"","nullable":true},"DistributionId":{"type":"integer","description":"if available for Non-Profit Charity data - Unique identifier for the distribution.","format":"int32","nullable":true},"SourceGuid":{"type":"string","description":"Source used","format":"uuid"},"SourceName":{"type":"string","nullable":true},"CharityId":{"type":"string","description":"if available for Non-Profit Charity data - CharityId used","nullable":true},"OrganizationName":{"type":"string","description":"if available Non-Profit Charity data - Organization Name","nullable":true},"Ein":{"type":"string","description":"if available for Non-Profit Charity data - Charity EIN","nullable":true},"ExternalEventId":{"type":"string","description":"Event Identifier per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"Event Guid per Product","format":"uuid"},"ExternalEventName":{"type":"string","description":"Event Name per Product","nullable":true},"TaxableBenefit":{"type":"number","description":"optional - If part of the original donation transaction, amount passed in that was taxable. No calculations were performed using this value, it is simply a placeholder to be used for your own reporting;","format":"double"},"TranId":{"type":"string","description":"unique tran id per Integration Source if available","nullable":true},"VoidRequestDate":{"type":"string","description":"Date of Void Request if available","format":"date-time","nullable":true},"VoidReason":{"type":"string","description":"Void Reason submitted if available","nullable":true},"RefundRequestDate":{"type":"string","description":"Date of Refund Request if available","format":"date-time","nullable":true},"RefundReason":{"type":"string","description":"Refund Reason submitted if available","nullable":true},"ProcessorId":{"type":"integer","description":"ProcessorId used","format":"int32","nullable":true},"ProcessorGuid":{"type":"string","description":"ProcessorGuid used","format":"uuid","nullable":true},"PaymentMethodTypeId":{"type":"integer","description":"possible values if available:\r\nNONE = 0,\r\nAMEX = 1,\r\nMASTERCARD = 2,\r\nVISA = 3,\r\nDISCOVER = 4,\r\nDINERSCLUB = 5,\r\nACH = 7,\r\nGOOGLEPAY = 8,\r\nAPPLEPAY = 9","format":"int32","nullable":true},"PaymentMethodTypeIdValue":{"type":"string","description":"\"NONE\" = 0,\r\n\"AMEX\" = 1,\r\n\"MASTERCARD\" = 2,\r\n\"VISA\" = 3,\r\n\"DISCOVER\" = 4,\r\n\"DINERSCLUB\" = 5,\r\n\"ACH\" = 7,\r\n\"GOOGLEPAY\" = 8,\r\n\"APPLEPAY\" = 9","nullable":true},"Surcharge":{"type":"number","description":"if available - The total surcharge amount.","format":"double","nullable":true},"IsSurchargeEligible":{"type":"boolean","description":"if available - Was card used Surcharge eligible","nullable":true},"CheckLastDigits":{"type":"string","description":"if available - last 4 digits of check account used","nullable":true},"CheckNumber":{"type":"string","description":"if available - Valid Check Number used","nullable":true},"CheckTypeId":{"type":"integer","description":"if available for Check transactions - possible values -\r\n        1 = Personal,\r\n        2 = Corporate,\r\n        3 = Government","format":"int32","nullable":true},"CheckTypeIdValue":{"type":"string","description":"if available for Check transactions - possible values -\r\n        \"Personal\" = 1,\r\n        \"Corporate\" = 2,\r\n        \"Government\" = 3","nullable":true},"CheckAccountTypeId":{"type":"integer","description":"if available for Check transactions - possible values -\r\n        1 = Checking,\r\n        2 = Savings","format":"int32","nullable":true},"CheckAccountTypeIdValue":{"type":"string","description":"if available for Check transactions - possible values -\r\n        \"Checking\" = 1,\r\n        \"Savings\" = 2","nullable":true},"EpfSessionId":{"type":"string","description":"FrontStream unique Embedded Payment Form Session Id if available","format":"uuid","nullable":true},"TransactionLines":{"type":"array","items":{"$ref":"#/components/schemas/TransactionLinesDetail"},"nullable":true}},"additionalProperties":false,"description":"Transaction Report Details"},"ProcessStatus":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12],"type":"integer","format":"int32"},"PaymentResult":{"enum":[1,2,3,4,5,6],"type":"integer","format":"int32"},"DistributionType":{"enum":[1,2],"type":"integer","format":"int32"},"TransactionLinesDetail":{"type":"object","properties":{"PaymentGuid":{"type":"string","description":"Payment API Payment GUID for reference","format":"uuid"},"PaymentLineId":{"type":"integer","description":"Payment API Payment Line Identifier for reference","format":"int32"},"PaymentId":{"type":"integer","description":"Payment API Payment Identifier for reference","format":"int32"},"CreatedDate":{"type":"string","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"Amount":{"type":"number","description":"Transaction Line Amount","format":"double"},"CommissionAmount":{"type":"number","format":"double","nullable":true},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intended to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)","nullable":true},"TransactionSourceGroupId":{"type":"integer","format":"int32","nullable":true},"CardFeeRate":{"type":"number","description":"example 2.5% - applied to EVERY donation. This is the FrontStream card processing fee. The percentage of the PaymentAmount that will be taken for credit card fees. Expressed as a human-readable percentage rather than a decimal value, it is intended to be able to be displayed directly on a page without needing to be converted.","format":"double","nullable":true},"CardFeeAmount":{"type":"number","description":"This is the amount that is owed to the gateway for the example 2.5% that FrontStream collects from the transaction.\r\n 2.5% of transaction amount if donor is not paying the fee, otherwise 2.5% of the transaction + card fee.","format":"double","nullable":true},"CardTypeFeeAmount":{"type":"number","description":"A per-transaction fee configured by card type (VI, MC, DI, AMEX, etc.) per API Partner's Contract other wise 0 (zero)","format":"double","nullable":true},"TotalCommissionRate":{"type":"number","description":"The Total percentage of Commissions that FrontStream takes from a given transaction.\r\nThis rate = Partner CommissionRate + FS CommissionRate","format":"double","nullable":true},"TotalCommissionAmount":{"type":"number","description":"The product of the transaction times the Total commission rate.","format":"double","nullable":true},"PartnerCommissionRate":{"type":"number","description":"The Partner Commission percentage taken on behalf of the Partner from a given transaction.","format":"double","nullable":true},"PartnerCommissionAmount":{"type":"number","description":"The product of the transaction times the Partner commission rate.","format":"double","nullable":true},"FsCommissionRate":{"type":"number","description":"The FrontStream Commission percentage that FrontStream takes from a given transaction.","format":"double","nullable":true},"FsCommissionAmount":{"type":"number","description":"The product of the transaction times the FrontStream commission rate.","format":"double","nullable":true},"TotalFees":{"type":"number","description":"The sum of all fees applied to a transaction amount. (TotalCommission + CardFee + FlatFee + CardFeeOnFee)","format":"double","nullable":true},"PerTransFee":{"type":"number","description":"The flat amount that will be taken from the PaymentAmount for any Per-Transaction Fees as configured in your contract.","format":"double","nullable":true},"ExternalLineId":{"type":"string","description":"optional - used to track individual line item IDs if necessary.","nullable":true},"Tip":{"type":"number","format":"double","nullable":true},"CommissionRateOverride":{"type":"number","format":"double","nullable":true},"Tax":{"type":"number","description":"Transaction Line Tax","format":"double","nullable":true},"CardFeeOnFeeAmount":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"Transaction Line Details"}}}}
```

## The TransactionReportDetailPagedResults object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"TransactionReportDetailPagedResults":{"type":"object","properties":{"CurrentPage":{"type":"integer","format":"int32"},"PageSize":{"type":"integer","format":"int32"},"Results":{"type":"array","items":{"$ref":"#/components/schemas/TransactionReportDetail"},"nullable":true},"TotalPages":{"type":"integer","format":"int32"},"TotalRows":{"type":"integer","format":"int32"}},"additionalProperties":false},"TransactionReportDetail":{"type":"object","properties":{"PaymentDate":{"type":"string","description":"Payment Date of transaction","format":"date-time"},"PaymentGuid":{"type":"string","description":"Payment API Payment GUID","format":"uuid"},"PaymentId":{"type":"integer","description":"Payment API Payment Id","format":"int32"},"PaymentExternalId":{"type":"string","description":"Payment Gateway TransactionId - is the TransactionId of a Payment Response object","nullable":true},"OriginalExternalID":{"type":"string","description":"Original Payment Gateway TransactionId - is the Original TransactionId of a Payment Response object","nullable":true},"ProcessStatus":{"$ref":"#/components/schemas/ProcessStatus"},"ProcessStatusValue":{"type":"string","description":"Process Status value - possible values: NotProcessed = 1 \"Not Processed\", Authorized = 2 \"Awaiting Authorization\", Settled = 4 \"Authorized\", Rejected = 5 \"Rejected\", RefundRequired = 6 \"Refund Required\", AwaitingRefund = 7 \"Awaiting Refund\", Refunded = 8 \"Refunded\", Cancelled = 9 \"Cancelled\", Chargeback = 10 \"Chargeback\", RefundRejected = 11 \"Refund Rejected\"","nullable":true},"PaymentResult":{"$ref":"#/components/schemas/PaymentResult"},"PaymentResultValue":{"type":"string","description":"Payment Result value - possible values: \"Pending\" = 1, \"Processing\" = 2, \"Successful\" = 3, \"Failed\" = 4, \"Refunded\" = 5, \"Cancelled\" = 6","nullable":true},"ExternalConstituentId":{"type":"string","description":"Donor Identifier","nullable":true},"FirstName":{"type":"string","description":"billing First Name","nullable":true},"LastName":{"type":"string","description":"billing Last Name","nullable":true},"Email":{"type":"string","description":"contact email","nullable":true},"CardHolderName":{"type":"string","description":"Name on Card","nullable":true},"CCLastDigits":{"type":"string","description":"if available - last 4 digits of card","nullable":true},"ExpirationDate":{"type":"string","description":"MM/YY format","nullable":true},"CCType":{"type":"string","description":"possible values if available: \"American Express\", \"Mastercard\", \"Visa\", \"Discover\", \"Diners Club\", Undefined","nullable":true},"CoverTheFee":{"type":"string","description":"YES/NO - did donor Cover the Fees on Donation.","nullable":true},"DonationAmount":{"type":"number","description":"The total donation amount requested.","format":"double"},"CoverTheFeeAmount":{"type":"number","description":"The total donation amount requested.","format":"double"},"TransactionAmount":{"type":"number","description":"The total transaction amount processed toward the cardholder's account.","format":"double"},"ServiceFees":{"type":"number","description":"The calculated total fees amount of the list of transaction lines.","format":"double"},"AmountPaid":{"type":"number","description":"The total transaction amount minus processing Fees","format":"double"},"Taxes":{"type":"number","description":"The calculated total tax amount of the list of transaction lines if any.","format":"double"},"Recurring":{"type":"string","description":"if available - YES/NO - if recurring billing contract used for transaction","nullable":true},"RecurringFrequency":{"type":"string","description":"if available - if recurring billing contract used for transaction\r\nPossible values:\r\n    \"Daily\", (once per day)\r\n    \"Weekly\", (once per week)\r\n    \"Bi-Weekly\", (once per 2 weeks)\r\n    \"Monthly\", (once per month)\r\n    \"Bi-Monthly\", (Once every 2 months)\r\n    \"Semi-Monthly\", (twice per month)\r\n    \"Quarterly\", (four times per year)\r\n    \"Semi-Annually\", (twice per year)\r\n    \"Annually\" (once per year)","nullable":true},"RecurringProfileGuid":{"type":"string","description":"if available - GUID that identifies the recurring billing contract used for transaction","format":"uuid","nullable":true},"NextBillDate":{"type":"string","description":"if available - Next Billing date of the recurring billing contract used for transaction","format":"date-time","nullable":true},"DistributionType":{"$ref":"#/components/schemas/DistributionType"},"DistributionTypeValue":{"type":"string","description":"if available for Non-Profit Charity data - Distribution Type value - possible values: \"Direct Deposit\" = 1, \"Check\" = 2. Indicates the payment method that was used to disburse the funds to the Charity.","nullable":true},"DistributionStatus":{"type":"string","description":"if available for Non-Profit Charity data - possible values: \"Processing\", \"Settled\", \"Refunded\", \"Voided\"","nullable":true},"DistributionId":{"type":"integer","description":"if available for Non-Profit Charity data - Unique identifier for the distribution.","format":"int32","nullable":true},"SourceGuid":{"type":"string","description":"Source used","format":"uuid"},"SourceName":{"type":"string","nullable":true},"CharityId":{"type":"string","description":"if available for Non-Profit Charity data - CharityId used","nullable":true},"OrganizationName":{"type":"string","description":"if available Non-Profit Charity data - Organization Name","nullable":true},"Ein":{"type":"string","description":"if available for Non-Profit Charity data - Charity EIN","nullable":true},"ExternalEventId":{"type":"string","description":"Event Identifier per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"Event Guid per Product","format":"uuid"},"ExternalEventName":{"type":"string","description":"Event Name per Product","nullable":true},"TaxableBenefit":{"type":"number","description":"optional - If part of the original donation transaction, amount passed in that was taxable. No calculations were performed using this value, it is simply a placeholder to be used for your own reporting;","format":"double"},"TranId":{"type":"string","description":"unique tran id per Integration Source if available","nullable":true},"VoidRequestDate":{"type":"string","description":"Date of Void Request if available","format":"date-time","nullable":true},"VoidReason":{"type":"string","description":"Void Reason submitted if available","nullable":true},"RefundRequestDate":{"type":"string","description":"Date of Refund Request if available","format":"date-time","nullable":true},"RefundReason":{"type":"string","description":"Refund Reason submitted if available","nullable":true},"ProcessorId":{"type":"integer","description":"ProcessorId used","format":"int32","nullable":true},"ProcessorGuid":{"type":"string","description":"ProcessorGuid used","format":"uuid","nullable":true},"PaymentMethodTypeId":{"type":"integer","description":"possible values if available:\r\nNONE = 0,\r\nAMEX = 1,\r\nMASTERCARD = 2,\r\nVISA = 3,\r\nDISCOVER = 4,\r\nDINERSCLUB = 5,\r\nACH = 7,\r\nGOOGLEPAY = 8,\r\nAPPLEPAY = 9","format":"int32","nullable":true},"PaymentMethodTypeIdValue":{"type":"string","description":"\"NONE\" = 0,\r\n\"AMEX\" = 1,\r\n\"MASTERCARD\" = 2,\r\n\"VISA\" = 3,\r\n\"DISCOVER\" = 4,\r\n\"DINERSCLUB\" = 5,\r\n\"ACH\" = 7,\r\n\"GOOGLEPAY\" = 8,\r\n\"APPLEPAY\" = 9","nullable":true},"Surcharge":{"type":"number","description":"if available - The total surcharge amount.","format":"double","nullable":true},"IsSurchargeEligible":{"type":"boolean","description":"if available - Was card used Surcharge eligible","nullable":true},"CheckLastDigits":{"type":"string","description":"if available - last 4 digits of check account used","nullable":true},"CheckNumber":{"type":"string","description":"if available - Valid Check Number used","nullable":true},"CheckTypeId":{"type":"integer","description":"if available for Check transactions - possible values -\r\n        1 = Personal,\r\n        2 = Corporate,\r\n        3 = Government","format":"int32","nullable":true},"CheckTypeIdValue":{"type":"string","description":"if available for Check transactions - possible values -\r\n        \"Personal\" = 1,\r\n        \"Corporate\" = 2,\r\n        \"Government\" = 3","nullable":true},"CheckAccountTypeId":{"type":"integer","description":"if available for Check transactions - possible values -\r\n        1 = Checking,\r\n        2 = Savings","format":"int32","nullable":true},"CheckAccountTypeIdValue":{"type":"string","description":"if available for Check transactions - possible values -\r\n        \"Checking\" = 1,\r\n        \"Savings\" = 2","nullable":true},"EpfSessionId":{"type":"string","description":"FrontStream unique Embedded Payment Form Session Id if available","format":"uuid","nullable":true},"TransactionLines":{"type":"array","items":{"$ref":"#/components/schemas/TransactionLinesDetail"},"nullable":true}},"additionalProperties":false,"description":"Transaction Report Details"},"ProcessStatus":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12],"type":"integer","format":"int32"},"PaymentResult":{"enum":[1,2,3,4,5,6],"type":"integer","format":"int32"},"DistributionType":{"enum":[1,2],"type":"integer","format":"int32"},"TransactionLinesDetail":{"type":"object","properties":{"PaymentGuid":{"type":"string","description":"Payment API Payment GUID for reference","format":"uuid"},"PaymentLineId":{"type":"integer","description":"Payment API Payment Line Identifier for reference","format":"int32"},"PaymentId":{"type":"integer","description":"Payment API Payment Identifier for reference","format":"int32"},"CreatedDate":{"type":"string","format":"date-time"},"ModifiedDate":{"type":"string","format":"date-time","nullable":true},"Amount":{"type":"number","description":"Transaction Line Amount","format":"double"},"CommissionAmount":{"type":"number","format":"double","nullable":true},"PayFee":{"type":"boolean","description":"optional - cover the fees flag for the transaction. Indicates if the donor intended to cover the processing fees for the donation (primary used for Non Profit transactions like a donation)","nullable":true},"TransactionSourceGroupId":{"type":"integer","format":"int32","nullable":true},"CardFeeRate":{"type":"number","description":"example 2.5% - applied to EVERY donation. This is the FrontStream card processing fee. The percentage of the PaymentAmount that will be taken for credit card fees. Expressed as a human-readable percentage rather than a decimal value, it is intended to be able to be displayed directly on a page without needing to be converted.","format":"double","nullable":true},"CardFeeAmount":{"type":"number","description":"This is the amount that is owed to the gateway for the example 2.5% that FrontStream collects from the transaction.\r\n 2.5% of transaction amount if donor is not paying the fee, otherwise 2.5% of the transaction + card fee.","format":"double","nullable":true},"CardTypeFeeAmount":{"type":"number","description":"A per-transaction fee configured by card type (VI, MC, DI, AMEX, etc.) per API Partner's Contract other wise 0 (zero)","format":"double","nullable":true},"TotalCommissionRate":{"type":"number","description":"The Total percentage of Commissions that FrontStream takes from a given transaction.\r\nThis rate = Partner CommissionRate + FS CommissionRate","format":"double","nullable":true},"TotalCommissionAmount":{"type":"number","description":"The product of the transaction times the Total commission rate.","format":"double","nullable":true},"PartnerCommissionRate":{"type":"number","description":"The Partner Commission percentage taken on behalf of the Partner from a given transaction.","format":"double","nullable":true},"PartnerCommissionAmount":{"type":"number","description":"The product of the transaction times the Partner commission rate.","format":"double","nullable":true},"FsCommissionRate":{"type":"number","description":"The FrontStream Commission percentage that FrontStream takes from a given transaction.","format":"double","nullable":true},"FsCommissionAmount":{"type":"number","description":"The product of the transaction times the FrontStream commission rate.","format":"double","nullable":true},"TotalFees":{"type":"number","description":"The sum of all fees applied to a transaction amount. (TotalCommission + CardFee + FlatFee + CardFeeOnFee)","format":"double","nullable":true},"PerTransFee":{"type":"number","description":"The flat amount that will be taken from the PaymentAmount for any Per-Transaction Fees as configured in your contract.","format":"double","nullable":true},"ExternalLineId":{"type":"string","description":"optional - used to track individual line item IDs if necessary.","nullable":true},"Tip":{"type":"number","format":"double","nullable":true},"CommissionRateOverride":{"type":"number","format":"double","nullable":true},"Tax":{"type":"number","description":"Transaction Line Tax","format":"double","nullable":true},"CardFeeOnFeeAmount":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"Transaction Line Details"}}}}
```

## The UpdateRecurringProfileRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"UpdateRecurringProfileRequest":{"required":["RecurringProfileGuid"],"type":"object","properties":{"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"RecurringProfileGuid":{"type":"string","description":"required - Valid Recurring Profile Guid for update"},"Amount":{"maxLength":7,"type":"string","description":"optional if updating existing recurring profile - Amount to be charged per billing frequency","nullable":true},"StartDate":{"type":"string","description":"optional if updating existing recurring profile - format yyyy-MM-dd - start date of contract to update","nullable":true},"EndDate":{"type":"string","description":"optional if updating existing recurring profile - format yyyy-MM-dd - end date of contract (must be after StartDate) if you wish a contract to stop recurring at certain date","nullable":true},"NextBillDate":{"type":"string","description":"optional if updating existing recurring profile - format yyyy-MM-dd - The date when the first recurrence should begin charging the donor's card. Must be after StartDate.","nullable":true},"BillingFrequency":{"type":"string","description":"optional if updating existing recurring profile - How often the recurrence should occur. Possible values:\r\n    \"Daily\", (once per day)\r\n    \"Weekly\", (once per week)\r\n    \"Bi-Weekly\", (once per 2 weeks)\r\n    \"Monthly\", (once per month)\r\n    \"Bi-Monthly\", (Once every 2 months)\r\n    \"Semi-Monthly\", (twice per month)\r\n    \"Quarterly\", (four times per year)\r\n    \"Semi-Annually\", (twice per year)\r\n    \"Annually\" (once per year)","nullable":true},"PreFeeAmount":{"maxLength":7,"type":"string","description":"optional if updating existing recurring profile - Pre Fee Amount with the fees not included if using fee (used for Non Profit transactions like a donation)","nullable":true},"PayFee":{"type":"boolean","description":"optional if updating existing recurring profile - cover the fees flag for the transaction (primary used for Non Profit transactions like a donation), if used see Amount and PreFeeAmount info","nullable":true},"TransactionSourceGroupId":{"type":"string","description":"optional if updating existing recurring profile - For Direct Merchant (For Profit) Api Partners should set to PaymentNoFee (12), other values are for Non Profit transactions - possible values -\r\n        1 - Donation Fee,\r\n        2 - Peer-to-Peer Fee,\r\n        3 - Auction Performance Fee,\r\n        4 - Ticket Fee,\r\n        5 - Registration Fee,\r\n        6 - Quick Sales Fee,\r\n        7 - Online Store Fee,\r\n        8 - Campaign Fee,\r\n        9 - 0% Auction Performance Fee,\r\n        10 - ApiPartnerFee,\r\n        11 - ExpressPayrollFee;\r\n        12 - PaymentNoFee;","nullable":true},"ExternalEventId":{"maxLength":10,"type":"string","description":"optional - Event Id per Product","nullable":true},"ExternalEventGuid":{"type":"string","description":"optional - Event Guid per Product","nullable":true},"ExternalEventName":{"maxLength":500,"type":"string","description":"optional - Event Name per Product","nullable":true},"UseOriginalFees":{"type":"boolean","description":"optional - if a Non Profit organization has changed fees then UseOriginalFee = false will update recurring profile to use updated organization fees. Primary used for Non Profit transactions.","nullable":true},"CommissionRateOverride":{"type":"string","description":"optional - update the percentage value that you want to set for your commission on the transaction. Minimum value that will be used is the FrontStream Commission Rate as set in your contract, maximum value is the maximum commission rate set in your contract. Passing values outside of the min/max range will not result in a validation error, but will instead default to the min/max value (i.e. if your maximum commission rate in your contract is 10%, and you pass \"15.0\" for this value, the Payment API will simply use 10%). Not including this field or passing null also defaults to using the maximum commission rate from your contract. Primary used for Non Profit transactions.","nullable":true},"CardProcessingFeeOverride":{"type":"string","description":"optional - update the CardProcessingFeeOverride that Overrides the default percentage processing fee. Primary used for Non Profit transactions.","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The VerifyCardRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"VerifyCardRequest":{"required":["CardNum","City","Country","Email","ExpMonth","ExpYear","IpAddress","NameOnCard","Street"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"required if API Partner - Identifies Processor being used by an API Partner","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"CardNum":{"maxLength":30,"type":"string","description":"required - Valid Credit card number"},"ExpMonth":{"maxLength":2,"minLength":2,"type":"string","description":"required - example: \"01\" for January"},"ExpYear":{"maxLength":2,"minLength":2,"type":"string","description":"required - example: \"29\" for 2029"},"CVNum":{"maxLength":4,"type":"string","description":"optional (max: 4) - valid CVV - please provide for CVV checks","nullable":true},"NameOnCard":{"maxLength":25,"type":"string","description":"required - Name on Card"},"Email":{"maxLength":100,"type":"string","description":"required - valid contact email","format":"email"},"Zip":{"maxLength":10,"type":"string","description":"optional (max: 10) - please provide for best interchange and avs checks - US, CA, AU formats are validated (example formats - US: 12345 or 12345-1234, CA: A1A 1A1, AU: 3000","nullable":true},"Street":{"maxLength":50,"type":"string","description":"required - please provide for best interchange and avs checks"},"City":{"maxLength":50,"type":"string","description":"required - please provide for best interchange and avs checks"},"State":{"maxLength":50,"type":"string","description":"optional - 2 char US state code, 3 char may be used for other non-US","nullable":true},"Country":{"maxLength":2,"type":"string","description":"required - 2 char country code"},"FirstName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing First Name","nullable":true},"LastName":{"maxLength":50,"type":"string","description":"optional (max: 50) - billing Last Name","nullable":true},"Currency":{"maxLength":3,"type":"string","description":"optional - 3 char currency code - Example for US - \"USD\", for CA - \"CAD\"","nullable":true},"IpAddress":{"maxLength":40,"type":"string","description":"required - client ip address where transaction originates"},"AFShieldAdditional":{"$ref":"#/components/schemas/AFShieldPaymentRequest"}},"additionalProperties":false,"description":""},"AFShieldPaymentRequest":{"type":"object","properties":{"ProductDescription":{"maxLength":256,"type":"string","nullable":true},"ProductItem":{"maxLength":256,"type":"string","nullable":true},"ProductType":{"maxLength":256,"type":"string","nullable":true},"ProductQuantity":{"maxLength":3,"type":"string","nullable":true},"SessionId":{"maxLength":32,"type":"string","nullable":true},"BillToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShippingAddressStreet1":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressStreet2":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressCountry":{"maxLength":2,"type":"string","nullable":true},"ShippingAddressCity":{"maxLength":256,"type":"string","nullable":true},"ShippingAddressEmail":{"maxLength":64,"type":"string","format":"email","nullable":true},"ShippingAddressName":{"maxLength":64,"type":"string","nullable":true},"ShippingAddressZip":{"maxLength":10,"type":"string","nullable":true},"ShippingAddressState":{"maxLength":50,"type":"string","nullable":true},"ShipToPhoneNumber":{"maxLength":32,"type":"string","nullable":true},"ShipToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"ShipToStreetForUK":{"maxLength":256,"type":"string","nullable":true},"BillToPremiseForUK":{"maxLength":256,"type":"string","nullable":true},"BillToStreetForUK":{"maxLength":256,"type":"string","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The VerifyCardResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"VerifyCardResponse":{"type":"object","properties":{"Successful":{"type":"boolean","description":"As one would guess, this is \"true\" if the transaction was processed successfully, and \"false\" if the transaction was not processed successfully."},"Message":{"type":"string","description":"Payment Gateway response message","nullable":true},"ProcessorMessage":{"type":"string","description":"Response from the processing bank.","nullable":true},"ResponseCode":{"type":"string","description":"Response Code - Approved = 0, Not processed = -100 with more possible values - https://developers.frontstream.com/argofire/full-endpoint-reference-and-tools/general-info-and-utilities#argofire-response-codes","nullable":true},"AVSStreetStatus":{"type":"string","description":"Address Verification Street Status","nullable":true},"AVSZipStatus":{"type":"string","description":"Address Verification Zip Status","nullable":true},"AVSResponse":{"type":"string","description":"Address Verification Response","nullable":true},"CVVResponse":{"type":"string","description":"Card Verification Response","nullable":true}},"additionalProperties":false,"description":""}}}}
```

## The VoidRequest object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"VoidRequest":{"required":["Reason"],"type":"object","properties":{"ProcessorGuid":{"type":"string","description":"optional for Non-Profit transactions like donations but required if For-Profit API Partner - Identifies Processor being used by an API Partner","nullable":true},"CharityId":{"type":"string","description":"optional - Valid CharityId Guid from Charity Search","nullable":true},"OrganizationGuid":{"type":"string","description":"internal use - Valid Panorama Organization Guid","nullable":true},"IntegrationSource":{"type":"string","description":"internal use - Identifies integrated Product","nullable":true},"PaymentGuid":{"type":"string","description":"optional - if not using PaymentExternalId - Payment API PaymentGuid to be refunded","nullable":true},"PaymentExternalId":{"maxLength":200,"type":"string","description":"optional (max: 200) - if not using PaymentGuid - 3rd Party Payment External Id to be refunded","nullable":true},"Reason":{"maxLength":500,"type":"string","description":"required - reason for void request"}},"additionalProperties":false,"description":""}}}}
```

## The VoidResponse object

```json
{"openapi":"3.0.1","info":{"title":"The Payment API","version":"v1"},"components":{"schemas":{"VoidResponse":{"type":"object","properties":{"Successful":{"type":"boolean","description":"\"true\" if the transaction was processed successfully, and \"false\" if the transaction was not processed successfully."},"Message":{"type":"string","nullable":true},"ProcessorMessage":{"type":"string","nullable":true},"TransactionId":{"type":"string","nullable":true},"OriginalTransactionId":{"type":"string","nullable":true},"PaymentGuid":{"type":"string","format":"uuid"},"PaymentId":{"type":"integer","format":"int32"},"ResponseCode":{"type":"string","nullable":true},"PaymentResult":{"$ref":"#/components/schemas/PaymentResult"},"ProcessStatus":{"$ref":"#/components/schemas/ProcessStatus"}},"additionalProperties":false,"description":""},"PaymentResult":{"enum":[1,2,3,4,5,6],"type":"integer","format":"int32"},"ProcessStatus":{"enum":[1,2,3,4,5,6,7,8,9,10,11,12],"type":"integer","format":"int32"}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.frontstream.com/welcome-to-our-payment-api/api-references/test-payment-api-features/each-api-reference-specifics/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
