# https://developers.production.splitit.com/ llms-full.txt [Skip to main content](https://developers.splitit.com/#__docusaurus_skipToContent_fallback) # Installments will grow your business Unlike other leading BNPL providers, Splitit is not a payment method, an offers engine or a super app. We want brands to own their customer relationships—that’s why we provide the tech and let you control the rest. [Get started](https://splitit.com/contact-sales) ![](https://developers.splitit.com/img/pexels-karolina-grabowska-4968391.jpg) ## Easy deployment Quickly add Splitit to your existing solution You have numerous choices for adding Splitit to your business—whether you have a bespoke website or use a platform like Shopify. [Platform Plugins](https://developers.splitit.com/category/platform-plugins)Add Splitit in app form to an existing e-commerce platform, such as Shopify or WooCommerce. [Checkout Solutions](https://developers.splitit.com/category/checkout-solutions)Add Splitit to an existing website using premade UI with light-PCI requirements—either a Hosted Form or the highly customizable Hosted Fields. [Direct API Calls](https://developers.splitit.com/api/v3/introduction)For a completely custom, server-to-server solution, start and maintain Splitit plans with a few API calls. [Splitit Go Portal](https://developers.splitit.com/category/splitit-go)Start a Splitit plan in seconds with the Splitit Go web portal. Set up a QR Code, text message, email, link, or call for your shopper. ## Join the thousands of merchants successfully using Splitit to increase brand loyalty. You'll own the end-to-end journey with no third-party registration or redirects, and no data harvesting or competitive cross sell to your shoppers. 330k shoppers With active plans Shoppers use their issued but unused credit on major credit cards at the point of sale, and continue to enjoy perks like cash back and points. $431 million in transactions Merchant transactional volume processed last year 80% of issued US credit goes unused, and Splitit helps you unlock these funds. $1,000+ AOV Highest AOV in the BNPL space Increase your average order value and reduce cart abandonment by simplifying checkout and removing price barriers. ## Partners: Splitit has ongoing collaborations with leading companies across sectors ![google logo](https://developers.splitit.com/img/google-600.png)![checkout.com logo](https://developers.splitit.com/img/checkout-no-fill.png)![visa logo](https://developers.splitit.com/img/visa-crop.png)![aliexpress logo](https://developers.splitit.com/img/AliExpress-crop.png)![worldline logo](https://developers.splitit.com/img/Worldline-600.png) ## Ready to get started? Sign up for a Developer Account today. [Get started](https://register-developer.sandbox.splitit.com/)[Skip to main content](https://developers.splitit.com/markdown-page/#__docusaurus_skipToContent_fallback) # Markdown page example You don't need React to write simple standalone pages.[Skip to main content](https://developers.splitit.com/search/#__docusaurus_skipToContent_fallback) # Search the documentation [Search by Algolia](https://www.algolia.com/)[Skip to main content](https://developers.production.splitit.com/#__docusaurus_skipToContent_fallback) # Installments will grow your business Unlike other leading BNPL providers, Splitit is not a payment method, an offers engine or a super app. We want brands to own their customer relationships—that’s why we provide the tech and let you control the rest. [Get started](https://splitit.com/contact-sales) ![](https://developers.production.splitit.com/img/pexels-karolina-grabowska-4968391.jpg) ## Easy deployment Quickly add Splitit to your existing solution You have numerous choices for adding Splitit to your business—whether you have a bespoke website or use a platform like Shopify. [Platform Plugins](https://developers.production.splitit.com/category/platform-plugins)Add Splitit in app form to an existing e-commerce platform, such as Shopify or WooCommerce. [Checkout Solutions](https://developers.production.splitit.com/category/checkout-solutions)Add Splitit to an existing website using premade UI with light-PCI requirements—either a Hosted Form or the highly customizable Hosted Fields. [Direct API Calls](https://developers.production.splitit.com/api/v3/introduction)For a completely custom, server-to-server solution, start and maintain Splitit plans with a few API calls. [Splitit Go Portal](https://developers.production.splitit.com/category/splitit-go)Start a Splitit plan in seconds with the Splitit Go web portal. Set up a QR Code, text message, email, link, or call for your shopper. ## Join the thousands of merchants successfully using Splitit to increase brand loyalty. You'll own the end-to-end journey with no third-party registration or redirects, and no data harvesting or competitive cross sell to your shoppers. 330k shoppers With active plans Shoppers use their issued but unused credit on major credit cards at the point of sale, and continue to enjoy perks like cash back and points. $431 million in transactions Merchant transactional volume processed last year 80% of issued US credit goes unused, and Splitit helps you unlock these funds. $1,000+ AOV Highest AOV in the BNPL space Increase your average order value and reduce cart abandonment by simplifying checkout and removing price barriers. ## Partners: Splitit has ongoing collaborations with leading companies across sectors ![google logo](https://developers.production.splitit.com/img/google-600.png)![checkout.com logo](https://developers.production.splitit.com/img/checkout-no-fill.png)![visa logo](https://developers.production.splitit.com/img/visa-crop.png)![aliexpress logo](https://developers.production.splitit.com/img/AliExpress-crop.png)![worldline logo](https://developers.production.splitit.com/img/Worldline-600.png) ## Ready to get started? Sign up for a Developer Account today. [Get started](https://register-developer.sandbox.splitit.com/)[Skip to main content](https://developers.splitit.com/api/ams/introduction/#__docusaurus_skipToContent_fallback) Version: 1.0.0 # Introduction The Account Management System API features endpoints that let you onboard your own merchant partner accounts. Note that before utilizing this API, you must have worked with Splitit to define and understand the required data you'll need to create your merchant partners. Once you have done that, proceed to the [Guide](https://developers.splitit.com/api/ams/guide). ## Authentication [​](https://developers.splitit.com/api/ams/introduction/\#authentication "Direct link to Authentication") - HTTP: Bearer Auth | Security Scheme Type: | http | | HTTP Authorization Scheme: | bearer |[Skip to main content](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic/#__docusaurus_skipToContent_fallback) # Add Merchant Partner ``` POST https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/create-account/:profileId ``` Use this endpoint to add a new merchant to your account by providing information for the fields that were returned in the object from [Structure for Add Merchant Partner Requests](https://developers.splitit.com/api/ams/partner-profiles-get-structure). As before, authenticate with your bearer token. Note that you can receive ongoing webhooks related to onboarding status by adding your desired URL to the `OnboardingInitialSetup` object ## Request [​](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic/\#request "Direct link to Request") ### Path Parameters **profileId**stringrequired The profile id from your merchant account that you would like to use (a merchant account may have more than one). It is returned in _RequestUrlEndpoint_ in the response from [Structure for Add Merchant Partner Requests](https://developers.splitit.com/api/ams/partner-profiles-get-structure) (at the end of the string) - application/json - application/json-patch+json ### Body required **Account** object **Id** string **Company** object **AccountName** string **AccountPhone** string **AccountEmail** string **Website** string **CompanyAddresses** object\[\] Array \[\ \ **Country** string\ \ **Street** string\ \ **City** string\ \ **State** string\ \ **PostalCode** string\ \ **Id** string\ \ **IsoA2** string\ \ **CountryName** string\ \ **Type** AddressType (string)\ \ **Possible values:** \[ `Billing`, `Shipping`\]\ \ \] **FinancialInformation** object **UniqueId** string **BillingInformation** object **LegalBusinessName** string **Subsidiary** Subsidiary (string) **Possible values:** \[ `SplititAustraliaPtyLtd`, `SplititOperationsCALtd`, `SplititUKLtd`, `SplititUSAInc`\] **VatGstNumber** string **BillingCurrency** BillingCurrency (string) **Possible values:** \[ `AUD`, `CAD`, `EUR`, `GBP`, `JPY`, `SGD`, `USD`\] **MonetaryFlow** MonetaryFlow (string) **Possible values:** \[ `DBS`, `PCO`, `DPL`, `MER`\] **RegisteredNumber** string **DebitBank** object **SettlementChannel** DebitSettlementChannel (string) **Possible values:** \[ `ABA`, `ACH`, `GoCardless`, `INVOICE`\] **BankAccountNumber** string **BankAccountType** BankAccountType (string) **Possible values:** \[ `Checking`, `Savings`\] **BankAccountName** string **GoCardlessMandateId** string **GoCardlessCustomerId** string **GoCardlessGivenName** string **GoCardlessFamilyName** string **GoCardlessCompanyName** string **GoCardlessEmail** string **BSBCode** string **BankNumber** string **CreditBank** object **SettlementChannel** CreditSettlementChannel (string) **Possible values:** \[ `ABA`, `ACH`, `CrossBorder`, `FasterPayment`, `PAD`, `WireTransfer`\] **BankAccountNumber** string **BankAccountType** BankAccountType (string) **Possible values:** \[ `Checking`, `Savings`\] **BankAccountName** string **BSBCode** string **TransitNumber** string **BankCode** string **SwiftCode** string **IBAN** string **BankNumber** string **FundingSetup** object **CreditLine** number **RiskRating** RiskRating (string) **Possible values:** \[ `None`, `High`, `Medium`, `Low`\] **ReservePool** number **FundingTrigger** FundingTriggers (string) **Possible values:** \[ `None`, `PlanActivation`, `Shipment`\] **DebitOnHold** boolean **FundingOnHold** boolean **FundingEndDate** date-time **FundingStartDate** date-time **SettlementType** SettlementType (string) **Possible values:** \[ `NetSettle`, `NetSettleOutgoingOnly`, `GrossSettle`, `GrossSettleInvoiced`, `None`\] **FundNonSecuredPlans** FundNonSecuredPlans (string) **Possible values:** \[ `NA`, `NO`, `YES`\] **Contracts** object\[\] Array \[\ \ **Id** string\ \ **Name** string\ \ **StartDate** date-time\ \ **EndDate** date-time\ \ **SubscriptionERP\_Id** string\ \ **Pricings**\ object\[\]\ \ Array \[\ \ **Id** string\ \ **SKU** string\ \ **TransactionFeePercentage** number\ \ **TransactionFixedFee** number\ \ **ChargebackFee** number\ \ **ErpId** string\ \ **BankRejectFee** number\ \ **Description** string\ \ **MinInstallment** int32\ \ **MaxInstallment** int32\ \ \]\ \ **BusinessUnitUniqueId** string\ \ \] **ModifiedDate** date-time **IsDeleted** boolean **Status** AccountStatuses (string) **Possible values:** \[ `New`, `PendingApproval`, `Approved`, `Rejected`, `Synced`, `Failed`\] **Contacts** object\[\] Array \[\ \ **Id** string\ \ **Type** ContactPersonType (string)\ \ **Possible values:** \[ `Business`, `Technical`, `Financial`\]\ \ **Email** string\ \ **FullName** string\ \ \] **CustomerERPId** string **RelatedEntities** object **AMSParentId** string **OnBoardingInitialSetup** object This is a URL (where you can provide a webhook) that will be called with ongoing updates related to the status of onboarding your merchant. **CallbackUrl** string ### Body required **Account** object **Id** string **Company** object **AccountName** string **AccountPhone** string **AccountEmail** string **Website** string **CompanyAddresses** object\[\] Array \[\ \ **Country** string\ \ **Street** string\ \ **City** string\ \ **State** string\ \ **PostalCode** string\ \ **Id** string\ \ **IsoA2** string\ \ **CountryName** string\ \ **Type** AddressType (string)\ \ **Possible values:** \[ `Billing`, `Shipping`\]\ \ \] **FinancialInformation** object **UniqueId** string **BillingInformation** object **LegalBusinessName** string **Subsidiary** Subsidiary (string) **Possible values:** \[ `SplititAustraliaPtyLtd`, `SplititOperationsCALtd`, `SplititUKLtd`, `SplititUSAInc`\] **VatGstNumber** string **BillingCurrency** BillingCurrency (string) **Possible values:** \[ `AUD`, `CAD`, `EUR`, `GBP`, `JPY`, `SGD`, `USD`\] **MonetaryFlow** MonetaryFlow (string) **Possible values:** \[ `DBS`, `PCO`, `DPL`, `MER`\] **RegisteredNumber** string **DebitBank** object **SettlementChannel** DebitSettlementChannel (string) **Possible values:** \[ `ABA`, `ACH`, `GoCardless`, `INVOICE`\] **BankAccountNumber** string **BankAccountType** BankAccountType (string) **Possible values:** \[ `Checking`, `Savings`\] **BankAccountName** string **GoCardlessMandateId** string **GoCardlessCustomerId** string **GoCardlessGivenName** string **GoCardlessFamilyName** string **GoCardlessCompanyName** string **GoCardlessEmail** string **BSBCode** string **BankNumber** string **CreditBank** object **SettlementChannel** CreditSettlementChannel (string) **Possible values:** \[ `ABA`, `ACH`, `CrossBorder`, `FasterPayment`, `PAD`, `WireTransfer`\] **BankAccountNumber** string **BankAccountType** BankAccountType (string) **Possible values:** \[ `Checking`, `Savings`\] **BankAccountName** string **BSBCode** string **TransitNumber** string **BankCode** string **SwiftCode** string **IBAN** string **BankNumber** string **FundingSetup** object **CreditLine** number **RiskRating** RiskRating (string) **Possible values:** \[ `None`, `High`, `Medium`, `Low`\] **ReservePool** number **FundingTrigger** FundingTriggers (string) **Possible values:** \[ `None`, `PlanActivation`, `Shipment`\] **DebitOnHold** boolean **FundingOnHold** boolean **FundingEndDate** date-time **FundingStartDate** date-time **SettlementType** SettlementType (string) **Possible values:** \[ `NetSettle`, `NetSettleOutgoingOnly`, `GrossSettle`, `GrossSettleInvoiced`, `None`\] **FundNonSecuredPlans** FundNonSecuredPlans (string) **Possible values:** \[ `NA`, `NO`, `YES`\] **Contracts** object\[\] Array \[\ \ **Id** string\ \ **Name** string\ \ **StartDate** date-time\ \ **EndDate** date-time\ \ **SubscriptionERP\_Id** string\ \ **Pricings**\ object\[\]\ \ Array \[\ \ **Id** string\ \ **SKU** string\ \ **TransactionFeePercentage** number\ \ **TransactionFixedFee** number\ \ **ChargebackFee** number\ \ **ErpId** string\ \ **BankRejectFee** number\ \ **Description** string\ \ **MinInstallment** int32\ \ **MaxInstallment** int32\ \ \]\ \ **BusinessUnitUniqueId** string\ \ \] **ModifiedDate** date-time **IsDeleted** boolean **Status** AccountStatuses (string) **Possible values:** \[ `New`, `PendingApproval`, `Approved`, `Rejected`, `Synced`, `Failed`\] **Contacts** object\[\] Array \[\ \ **Id** string\ \ **Type** ContactPersonType (string)\ \ **Possible values:** \[ `Business`, `Technical`, `Financial`\]\ \ **Email** string\ \ **FullName** string\ \ \] **CustomerERPId** string **RelatedEntities** object **AMSParentId** string **OnBoardingInitialSetup** object This is a URL (where you can provide a webhook) that will be called with ongoing updates related to the status of onboarding your merchant. **CallbackUrl** string ## Responses [​](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic/\#responses "Direct link to Responses") - 200 - 404 - 500 Success **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Data** object **property name\*** string ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Data": {} } ``` Not Found **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` Internal Server Error **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/create-account/:profileId' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "Account": { "Id": "string", "Company": { "AccountName": "string", "AccountPhone": "string", "AccountEmail": "string", "Website": "string", "CompanyAddresses": [\ {\ "Country": "string",\ "Street": "string",\ "City": "string",\ "State": "string",\ "PostalCode": "string",\ "Id": "string",\ "IsoA2": "string",\ "CountryName": "string",\ "Type": "Billing"\ }\ ] }, "FinancialInformation": { "UniqueId": "string", "BillingInformation": { "LegalBusinessName": "string", "Subsidiary": "SplititAustraliaPtyLtd", "VatGstNumber": "string", "BillingCurrency": "AUD", "MonetaryFlow": "DBS", "RegisteredNumber": "string" }, "DebitBank": { "SettlementChannel": "ABA", "BankAccountNumber": "string", "BankAccountType": "Checking", "BankAccountName": "string", "GoCardlessMandateId": "string", "GoCardlessCustomerId": "string", "GoCardlessGivenName": "string", "GoCardlessFamilyName": "string", "GoCardlessCompanyName": "string", "GoCardlessEmail": "string", "BSBCode": "string", "BankNumber": "string" }, "CreditBank": { "SettlementChannel": "ABA", "BankAccountNumber": "string", "BankAccountType": "Checking", "BankAccountName": "string", "BSBCode": "string", "TransitNumber": "string", "BankCode": "string", "SwiftCode": "string", "IBAN": "string", "BankNumber": "string" }, "FundingSetup": { "CreditLine": 0, "RiskRating": "None", "ReservePool": 0, "FundingTrigger": "None", "DebitOnHold": true, "FundingOnHold": true, "FundingEndDate": "2023-09-21T19:35:01.985Z", "FundingStartDate": "2023-09-21T19:35:01.985Z", "SettlementType": "NetSettle", "FundNonSecuredPlans": "NA" }, "Contracts": [\ {\ "Id": "string",\ "Name": "string",\ "StartDate": "2023-09-21T19:35:01.985Z",\ "EndDate": "2023-09-21T19:35:01.985Z",\ "SubscriptionERP_Id": "string",\ "Pricings": [\ {\ "Id": "string",\ "SKU": "string",\ "TransactionFeePercentage": 0,\ "TransactionFixedFee": 0,\ "ChargebackFee": 0,\ "ErpId": "string",\ "BankRejectFee": 0,\ "Description": "string",\ "MinInstallment": 0,\ "MaxInstallment": 0\ }\ ],\ "BusinessUnitUniqueId": "string"\ }\ ] }, "ModifiedDate": "2023-09-21T19:35:01.985Z", "IsDeleted": true, "Status": "New", "Contacts": [\ {\ "Id": "string",\ "Type": "Business",\ "Email": "string",\ "FullName": "string"\ }\ ], "CustomerERPId": "string", "RelatedEntities": { "AMSParentId": "string" }, "OnBoardingInitialSetup": { "CallbackUrl": "string" } } }' ``` Request Collapse all Base URL Edit https://account-mgmt-system.sandbox.splitit.com Auth Bearer Token Parameters profileId — pathrequired Body required Content-Type application/jsonapplication/json-patch+json ``` { "Account": { "Id": "string", "Company": { "AccountName": "string", "AccountPhone": "string", "AccountEmail": "string", "Website": "string", "CompanyAddresses": [\ {\ "Country": "string",\ "Street": "string",\ "City": "string",\ "State": "string",\ "PostalCode": "string",\ "Id": "string",\ "IsoA2": "string",\ "CountryName": "string",\ "Type": "Billing"\ }\ ] }, "FinancialInformation": { "UniqueId": "string", "BillingInformation": { "LegalBusinessName": "string", "Subsidiary": "SplititAustraliaPtyLtd", "VatGstNumber": "string", "BillingCurrency": "AUD", "MonetaryFlow": "DBS", "RegisteredNumber": "string" }, "DebitBank": { "SettlementChannel": "ABA", "BankAccountNumber": "string", "BankAccountType": "Checking", "BankAccountName": "string", "GoCardlessMandateId": "string", "GoCardlessCustomerId": "string", "GoCardlessGivenName": "string", "GoCardlessFamilyName": "string", "GoCardlessCompanyName": "string", "GoCardlessEmail": "string", "BSBCode": "string", "BankNumber": "string" }, "CreditBank": { "SettlementChannel": "ABA", "BankAccountNumber": "string", "BankAccountType": "Checking", "BankAccountName": "string", "BSBCode": "string", "TransitNumber": "string", "BankCode": "string", "SwiftCode": "string", "IBAN": "string", "BankNumber": "string" }, "FundingSetup": { "CreditLine": 0, "RiskRating": "None", "ReservePool": 0, "FundingTrigger": "None", "DebitOnHold": true, "FundingOnHold": true, "FundingEndDate": "2023-09-21T19:35:01.985Z", "FundingStartDate": "2023-09-21T19:35:01.985Z", "SettlementType": "NetSettle", "FundNonSecuredPlans": "NA" }, "Contracts": [\ {\ "Id": "string",\ "Name": "string",\ "StartDate": "2023-09-21T19:35:01.985Z",\ "EndDate": "2023-09-21T19:35:01.985Z",\ "SubscriptionERP_Id": "string",\ "Pricings": [\ {\ "Id": "string",\ "SKU": "string",\ "TransactionFeePercentage": 0,\ "TransactionFixedFee": 0,\ "ChargebackFee": 0,\ "ErpId": "string",\ "BankRejectFee": 0,\ "Description": "string",\ "MinInstallment": 0,\ "MaxInstallment": 0\ }\ ],\ "BusinessUnitUniqueId": "string"\ }\ ] }, "ModifiedDate": "2023-09-21T19:35:01.985Z", "IsDeleted": true, "Status": "New", "Contacts": [\ {\ "Id": "string",\ "Type": "Business",\ "Email": "string",\ "FullName": "string"\ }\ ], "CustomerERPId": "string", "RelatedEntities": { "AMSParentId": "string" }, "OnBoardingInitialSetup": { "CallbackUrl": "string" } } } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/ams/partner-profiles-get-account-details/#__docusaurus_skipToContent_fallback) # Get Onboarding Status ``` GET https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/account/:accountId ``` Call this endpoint to get the onboarding status of an account you added. You can add multiple documents at once. Authenticate with your bearer token. ## Request [​](https://developers.splitit.com/api/ams/partner-profiles-get-account-details/\#request "Direct link to Request") ### Path Parameters **accountId**stringrequired Id of the added account ## Responses [​](https://developers.splitit.com/api/ams/partner-profiles-get-account-details/\#responses "Direct link to Responses") - 200 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Account** object **AccountId** stringrequired **AccountName** stringrequired **AccountEmail** stringrequired **ApprovedDate** date-time **ParentId** stringrequired **ParentName** stringrequired **Status** AccountStatuses (string)required **Possible values:** \[ `New`, `PendingApproval`, `Approved`, `Rejected`, `Synced`, `Failed`\] **Terminals** object\[\] required Array \[\ \ **Name** stringrequired\ \ **Apikey** stringrequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Account": { "AccountId": "string", "AccountName": "string", "AccountEmail": "string", "ApprovedDate": "2024-06-06T16:41:09.479Z", "ParentId": "string", "ParentName": "string", "Status": "New", "Terminals": [\ {\ "Name": "string",\ "Apikey": "string"\ }\ ] } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/account/:accountId' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://account-mgmt-system.sandbox.splitit.com Auth Bearer Token Parameters accountId — pathrequired Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/About/#__docusaurus_skipToContent_fallback) # About Splitit Adding Splitit to your website or business will let your customers pay in installments using their existing credit cards at checkout—without adding new loans. There is no need for shoppers to fill out an application, resulting in minimal friction. Splitit doesn’t add interest or hidden fees, and shoppers get all of the benefits of paying with their credit cards, including rewards, transaction insurance and protection against fraud. Unlike other leading BNPL providers, Splitit is not a payment method, an offers engine or a super app. We want brands to own their customer relationships—that’s why we provide the tech and let you control the rest. Give Splitit a try and you’ll quickly experience why we have the highest conversion rate in the BNPL industry, averaging over 85%. Splitit can be added to your business in several different ways: - as an app [within an e-commerce platform](https://developers.splitit.com/category/platform-plugins) like Shopify, WooCommerce or Magento - directly into your e-commerce checkout flow, using a [Hosted Form or Hosted Fields](https://developers.splitit.com/category/checkout-solutions/) - directly into your e-commerce checkout flow using [plain API calls](https://developers.splitit.com/api/v3/introduction) - by using the [Splitit Go web portal](/category/splitit-go) to easily create and send installment plan links On this page Follow the steps below to onboard your own merchant partner accounts by API. You have two choices of flow, one that only uses API calls, whereby you provide the data for your merchant partners, and one that uses a form, in which case your merchant partners input their data. ## API Flow Option [​](https://developers.splitit.com/api/ams/guide/\#api-flow-option "Direct link to API Flow Option") The API flow lets you onboard merchants purely by API, requiring that you provide all of the information for your merchant partners yourself. ### 1\. Authenticate [​](https://developers.splitit.com/api/ams/guide/\#1-authenticate "Direct link to 1. Authenticate") Authenticate to the Splitit ID server using the [instructions at the auth endpoint](https://developers.splitit.com/api/ams/get-splitit-token). You'll need to add the response token as a bearer header to all subsequent calls. ### 2\. View the Required Format for Your Add Requests [​](https://developers.splitit.com/api/ams/guide/\#2-view-the-required-format-for-your-add-requests "Direct link to 2. View the Required Format for Your Add Requests") Make sure to attach your token from step 1 as a bearer header, then call [Structure for Add Merchant Partner Requests](https://developers.splitit.com/api/ams/partner-profiles-get-structure) to get a response that shows the fields you'll need to provide in each of your add requests. Note that the response here includes a _RequestUrlEndpoint_ field with the _profileId_ (at end), which you'll need in step 3. Example Response Object ```codeBlockLines_e6Vv { "MetaData": [\ {\ "Fields": [\ {\ "AccountFieldName": "Account.Company.AccountName",\ "AccountFieldType": "String",\ "IsMandatory": true\ },\ {\ "AccountFieldName": "Account.Company.AccountPhone",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.AccountEmail",\ "AccountFieldType": "String",\ "IsMandatory": true\ },\ {\ "AccountFieldName": "Account.Company.Website",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.Country",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.Street",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.City",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.State",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.PostalCode",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.Id",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.IsoA2",\ "AccountFieldType": "String",\ "AllowedOptions": [\ "BG",\ "MM",\ "KH",\ "BI",\ "BY",\ "DZ",\ "CM",\ "CA",\ "CV",\ "KY",\ "LK",\ "CL",\ "CF",\ "TD",\ "CN",\ "TW",\ "AS",\ "CO",\ "KM",\ "CG",\ "CD",\ "CK",\ "AD",\ "CR",\ "HR",\ "CY",\ "CZ",\ "BJ",\ "DK",\ "DO",\ "DM",\ "EC",\ "SV",\ "GQ",\ "AO",\ "ET",\ "EE",\ "FJ",\ "FI",\ "FR",\ "GA",\ "DJ",\ "GE",\ "GM",\ "PS",\ "DE",\ "AG",\ "GH",\ "GI",\ "KI",\ "GR",\ "GD",\ "AZ",\ "GU",\ "AR",\ "GT",\ "GN",\ "GY",\ "HT",\ "HN",\ "VA",\ "HK",\ "HU",\ "IS",\ "IN",\ "AU",\ "ID",\ "IQ",\ "IR",\ "IE",\ "IL",\ "IT",\ "CI",\ "JM",\ "JP",\ "KZ",\ "AF",\ "JO",\ "AT",\ "KE",\ "KP",\ "KR",\ "LA",\ "KW",\ "KG",\ "LB",\ "LS",\ "LY",\ "LV",\ "LR",\ "LI",\ "BS",\ "LT",\ "LU",\ "MO",\ "MG",\ "MW",\ "MY",\ "MV",\ "ML",\ "MT",\ "MR",\ "BH",\ "MU",\ "MX",\ "MN",\ "MC",\ "MD",\ "ME",\ "BD",\ "MS",\ "MZ",\ "MA",\ "AM",\ "NA",\ "BB",\ "OM",\ "NP",\ "NL",\ "CW",\ "AW",\ "SX",\ "VU",\ "NI",\ "NZ",\ "NE",\ "BE",\ "NU",\ "FM",\ "NO",\ "NG",\ "PA",\ "PK",\ "PG",\ "BM",\ "PH",\ "PY",\ "PL",\ "PE",\ "PT",\ "GW",\ "PR",\ "BT",\ "QA",\ "RO",\ "RU",\ "RW",\ "LC",\ "KN",\ "VC",\ "AI",\ "SM",\ "RS",\ "BO",\ "SN",\ "SA",\ "SC",\ "BA",\ "VN",\ "SL",\ "SG",\ "SK",\ "SI",\ "SO",\ "ZA",\ "ZW",\ "ES",\ "BW",\ "SR",\ "BR",\ "CH",\ "SZ",\ "SE",\ "SY",\ "TJ",\ "TT",\ "TG",\ "AE",\ "TH",\ "TO",\ "TN",\ "TR",\ "TM",\ "TC",\ "UG",\ "AL",\ "UA",\ "MK",\ "EG",\ "GB",\ "BZ",\ "TZ",\ "US",\ "VI",\ "VE",\ "WS",\ "ZM",\ "UY",\ "BF",\ "UZ",\ "YE",\ "SB",\ "VG",\ "EU",\ "KS",\ "JE",\ "BN",\ "IM",\ "NC",\ "MP",\ "NF",\ "PW",\ "RE",\ "BL",\ "PN",\ "MF",\ "ST",\ "SD",\ "SJ",\ "GS",\ "PM",\ "TL",\ "TK",\ "UM",\ "TV",\ "SH",\ "NR",\ "YT",\ "FK",\ "BQ",\ "BV",\ "MH",\ "AX",\ "IO",\ "AQ",\ "CX",\ "CC",\ "TP",\ "WF",\ "CU",\ "MQ",\ "FO",\ "PF",\ "GF",\ "TF",\ "GL",\ "GG",\ "ER",\ "HM",\ "EH"\ ],\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.CountryName",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Company.CompanyAddresses.Item.Type",\ "AccountFieldType": "AddressType",\ "AllowedOptions": [\ "Billing",\ "Shipping"\ ],\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.BillingInformation.LegalBusinessName",\ "AccountFieldType": "String",\ "IsMandatory": true\ },\ {\ "AccountFieldName": "Account.FinancialInformation.BillingInformation.VatGstNumber",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.BillingInformation.RegisteredNumber",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.DebitBank.BankAccountNumber",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.DebitBank.BankAccountType",\ "AccountFieldType": "BankAccountType",\ "AllowedOptions": [\ "Checking",\ "Savings"\ ],\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.DebitBank.BankAccountName",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.DebitBank.BankNumber",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.CreditBank.BankAccountNumber",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.CreditBank.BankAccountType",\ "AccountFieldType": "BankAccountType",\ "AllowedOptions": [\ "Checking",\ "Savings"\ ],\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.CreditBank.BankAccountName",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.CreditBank.BankNumber",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.Contracts.Item.Pricings.Item.SKU",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.Contracts.Item.Pricings.Item.TransactionFeePercentage",\ "AccountFieldType": "Decimal",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.Contracts.Item.Pricings.Item.TransactionFixedFee",\ "AccountFieldType": "Decimal",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.Contracts.Item.Pricings.Item.ChargebackFee",\ "AccountFieldType": "Decimal",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FinancialInformation.Contracts.Item.Pricings.Item.BankRejectFee",\ "AccountFieldType": "Decimal",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Contacts.Item.Type",\ "AccountFieldType": "ContactPersonType",\ "AllowedOptions": [\ "Business",\ "Technical",\ "Financial"\ ],\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Contacts.Item.Email",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.Contacts.Item.FullName",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FileIds.Item.FileId",\ "AccountFieldType": "String",\ "IsMandatory": false\ },\ {\ "AccountFieldName": "Account.FileIds.Item.FileType",\ "AccountFieldType": "FileType",\ "AllowedOptions": [\ "General",\ "Contract",\ "CreditCardProcessingStatement",\ "YtdFinancialStatements",\ "AuditedCPA",\ "KYC"\ ],\ "IsMandatory": false\ }\ ],\ "Account": {\ "Company": {\ "AccountName": "String",\ "AccountPhone": "String",\ "AccountEmail": "String",\ "Website": "String",\ "CompanyAddresses": [\ {\ "Country": "String",\ "Street": "String",\ "City": "String",\ "State": "String",\ "PostalCode": "String",\ "Id": "String",\ "IsoA2": "BG",\ "CountryName": "String",\ "Type": "Billing"\ }\ ]\ },\ "FinancialInformation": {\ "BillingInformation": {\ "LegalBusinessName": "String",\ "VatGstNumber": "String",\ "RegisteredNumber": "String"\ },\ "DebitBank": {\ "BankAccountNumber": "String",\ "BankAccountType": "Checking",\ "BankAccountName": "String",\ "BankNumber": "String"\ },\ "CreditBank": {\ "BankAccountNumber": "String",\ "BankAccountType": "Checking",\ "BankAccountName": "String",\ "BankNumber": "String"\ },\ "Contracts": [\ {\ "Pricings": [\ {\ "SKU": "String",\ "TransactionFeePercentage": "654827.561513539277346",\ "TransactionFixedFee": "436297852.98064334690748",\ "ChargebackFee": "1539358594.557046125761100",\ "BankRejectFee": "1022681608.43968529577408"\ }\ ]\ }\ ]\ },\ "Contacts": [\ {\ "Type": "Business",\ "Email": "String",\ "FullName": "String"\ }\ ],\ "FileIds": [\ {\ "FileId": "String",\ "FileType": "General"\ }\ ]\ },\ "RequestUrlEndpoint": "https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/create-account/PP_E80D13562D6F4C71876B85BE79D2AC79",\ "Description": "Splitit BASE profile",\ "Method": "POST",\ "AuthorizationHeader": "Bearer <>"\ }\ ], "Errors": null, "StatusCode": 200, "TraceId": "0LP1D6CTBD4M3:00000005#U4TtoG052xMPlAC", "IsSuccess": true } ``` ### 3\. Add New Merchants [​](https://developers.splitit.com/api/ams/guide/\#3-add-new-merchants "Direct link to 3. Add New Merchants") Onboard your merchant by calling [Add Merchant Partner](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic) with a properly formed request (using the format and _profileId_ from step 2). ## Form Flow Option [​](https://developers.splitit.com/api/ams/guide/\#form-flow-option "Direct link to Form Flow Option") The form flow lets you send your merchant partner to a form, onto which they can input their own data. ### 1\. Authenticate [​](https://developers.splitit.com/api/ams/guide/\#1-authenticate-1 "Direct link to 1. Authenticate") Authenticate to the Splitit ID server using the [instructions at the auth endpoint](https://developers.splitit.com/api/ams/get-splitit-token). You'll need to add the response token as a bearer header to all subsequent calls. ### 2\. Send Emails [​](https://developers.splitit.com/api/ams/guide/\#2-send-emails "Direct link to 2. Send Emails") Send your merchant partner to a prefilled form by providing their email address(es) and _profileId_ to the [Send Invite Emails endpoint](https://developers.splitit.com/api/ams/partner-profiles-send-invite). If you don't have your _profileId_, you can get it by calling [Structure for Add Merchant Partner Requests](https://developers.splitit.com/api/ams/partner-profiles-get-structure) and looking at the end of the _RequestUrlEndpoint_ field in the response. - [API Flow Option](https://developers.splitit.com/api/ams/guide/#api-flow-option) - [1\. Authenticate](https://developers.splitit.com/api/ams/guide/#1-authenticate) - [2\. View the Required Format for Your Add Requests](https://developers.splitit.com/api/ams/guide/#2-view-the-required-format-for-your-add-requests) - [3\. Add New Merchants](https://developers.splitit.com/api/ams/guide/#3-add-new-merchants) - [Form Flow Option](https://developers.splitit.com/api/ams/guide/#form-flow-option) - [1\. Authenticate](https://developers.splitit.com/api/ams/guide/#1-authenticate-1) - [2\. Send Emails](https://developers.splitit.com/api/ams/guide/#2-send-emails)[Skip to main content](https://developers.splitit.com/api/ams/get-splitit-token/#__docusaurus_skipToContent_fallback) # Get Splitit Token ``` POST https://id.sandbox.splitit.com/connect/token ``` Authenticate using your _client\_id_ and _client\_secret_ from your [merchant portal](https://merchant.sandbox.splitit.com/) (Splitit support will also have to enable AMS API access for you). For testing purposes, you can authenticate directly in the _Request_ box on this page (at right). For _grant\_type_, enter _client\_credentials_, for _scope_ enter _ams.api_, then enter your _client\_id_ and _client\_secret_. Scroll down and press _SEND API REQUEST_. In the response, copy your _access\_token_, which you can use to execute the other endpoints in this API reference. - Note that unlike the other endpoints, your authentication payload should use the format _application/x-www-form-urlencoded_. ## Request [​](https://developers.splitit.com/api/ams/get-splitit-token/\#request "Direct link to Request") - application/x-www-form-urlencoded ### Body **required** **grant\_type** string i.e., client\_credentials **scope** string i.e., ams.api **client\_id** string e.g., APIUser000032201 **client\_secret** string e.g., sU9tOVHOcM6jPOjjWZpXZs4V0cmc01BZfChF5afrj71Dz2COn2 ## Responses [​](https://developers.splitit.com/api/ams/get-splitit-token/\#responses "Direct link to Responses") - 200 Success - application/json - Schema - Example (from schema) **Schema** **access\_token** string The bearer token to add to your header **expires\_in** integer How long token will last **token\_type** string Type of token **scope** string The scope granted to your request ```codeBlockLines_e6Vv { "access_token": "string", "expires_in": 0, "token_type": "string", "scope": "string" } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://id.sandbox.splitit.com/connect/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Accept: application/json' ``` Request Collapse all Base URL Edit https://id.sandbox.splitit.com/connect Body required grant\_type scope client\_id client\_secret Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/#__docusaurus_skipToContent_fallback) On this page # Hosted Form IFrame The Hosted Form IFrame allows you to call a Splitit payment form as an IFrame—using your own button or other desired JavaScript element. Note: Your merchant account should be set to use Payment Form 3.7 if you wish to use the Hosted Form IFrame. Hosted Form IFrame Demo [iframe](/hosted-form-iframe.html) ## Back End [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/\#back-end "Direct link to Back End") To begin the process, on the back end, you must call a Splitit API to [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) an installment plan (it is best to do this on page load): 1. Fetch a bearer token and attach it as header using the [instructions under "Authentication."](https://developers.splitit.com/api/v3/introduction) 2. In your response from [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan), isolate the `CheckoutURL` to send to the front end. ## Front End [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/\#front-end "Direct link to Front End") On the front end, you'll need to add the Hosted Form IFrame library, configure your IFrame in a variable, and then trigger the IFrame with a UI element of your choice. 1. Call in the Payment Form IFrame library: ```codeBlockLines_e6Vv ``` 2. Set up your IFrame in a variable and add the CheckoutURL from your backend call to [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan): ```codeBlockLines_e6Vv `onError`, `onSuccess` and `onCancel` are callbacks allowing you to call functions in response to those events ('onCancel' is called when the the payment form is closed without payment). ``` 3. Trigger the Hosted Form IFrame using an element of your choice (a button in this example): ```codeBlockLines_e6Vv ``` ## Verify [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/\#verify "Direct link to Verify") 1. Once your customer has checked out through the form, make sure to verify the transaction by calling [VerifyAuthorization](https://developers.splitit.com/api/v3/verify-authorization) and providing the installment plan number. ## Other Options: [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/\#other-options "Direct link to Other Options:") 1. There are additional configuration options that you can use, seen in this `interface`: ```codeBlockLines_e6Vv interface Config { env: 'sandbox' | 'production'; url: string; elementId?: string; onError: (err: Error) => void; onSuccess: (s: Success) => void; onCancel?: () => void; }, ``` Note that `elementId` is only used for custom overlays. 2. You can hide and destroy the IFrame, using `.hide()` and `destroy()`, respectively: ```codeBlockLines_e6Vv splititCheckout.hide() splititCheckout.destroy() ``` - [Back End](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/#back-end) - [Front End](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/#front-end) - [Verify](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/#verify) - [Other Options:](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe/#other-options)[Skip to main content](https://developers.splitit.com/api/chargebacks/get-a-single-chargeback/#__docusaurus_skipToContent_fallback) # Get a Single Chargeback ``` GET https://chargebacks.sandbox.splitit.com/api/chargebacks/:id ``` Returns a single chargeback that was opened against the merchant. A successful response includes creation date, dispute ID, due date, a list of submitted evidence and comments, etc. ## Request [​](https://developers.splitit.com/api/chargebacks/get-a-single-chargeback/\#request "Direct link to Request") ### Path Parameters **id**stringrequired ## Responses [​](https://developers.splitit.com/api/chargebacks/get-a-single-chargeback/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Chargeback** object required **Id** stringrequired **DisputeCreatedDate** date-timerequired **DueDate** date-timerequired **InstallmentPlanNumber** stringrequired **InstallmentNumber** int64required **PlanStatus** stringrequired **TransactionId** stringrequired **MerchantName** stringrequired **TotalPlanAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **DisputeAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **Status** DisputeStatus (string)required **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] **PlanActivatedDate** date-time **ReasonCode** stringrequired **Evidences** object\[\] required Array \[\ \ **EvidenceId** stringrequired\ \ **UploadedAt** date-timerequired\ \ **FileName** stringrequired\ \ **FileType** stringrequired\ \ \] **Comments** object\[\] required Array \[\ \ **CommentId** stringrequired\ \ **Text** stringrequired\ \ **CommentAt** date-timerequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Chargeback": { "Id": "string", "DisputeCreatedDate": "2024-06-06T16:41:09.385Z", "DueDate": "2024-06-06T16:41:09.385Z", "InstallmentPlanNumber": "string", "InstallmentNumber": 0, "PlanStatus": "string", "TransactionId": "string", "MerchantName": "string", "TotalPlanAmount": { "Amount": 0, "CurrencyCode": "string" }, "DisputeAmount": { "Amount": 0, "CurrencyCode": "string" }, "Status": "Open", "PlanActivatedDate": "2024-06-06T16:41:09.385Z", "ReasonCode": "string", "Evidences": [\ {\ "EvidenceId": "string",\ "UploadedAt": "2024-06-06T16:41:09.385Z",\ "FileName": "string",\ "FileType": "string"\ }\ ], "Comments": [\ {\ "CommentId": "string",\ "Text": "string",\ "CommentAt": "2024-06-06T16:41:09.385Z"\ }\ ] } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://chargebacks.sandbox.splitit.com/api/chargebacks/:id' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/testing-and-qa/#__docusaurus_skipToContent_fallback) [**📄️Integration Testing** \\ To ensure that your integration is working, Splitit has enabled test credit cards to let you simulate successful transactions, as well as error values to let you simulate errors.](https://developers.splitit.com/testing-and-qa/integration-testing)[**📄️Testing with Our Gateway Mock** \\ Merchants can run a series of preconfigured tests to make sure their gateways are properly connected to Splitit and are functioning correctly with respect to outcomes for the five primary operations (auth, capture, refund, void, auth/capture). You have the option to run complex tests, which simulate multiple parameters (e.g., "failed auth on second installment), and simple tests, which simulate a single parameter (e.g., "bad cvv"). Note that these tests only work in Splitit's sandbox environment.](https://developers.splitit.com/testing-and-qa/testing-gateway-mock)[Skip to main content](https://developers.splitit.com/api/chargebacks/delete-evidence/#__docusaurus_skipToContent_fallback) # Delete Evidence ``` DELETE https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/delete-evidence ``` For an open dispute, you have the ability to delete previously submitted evidence. It can be deleted up until the due date of the dispute (you can receive _DueDate_ back from the _Get_ endpoints). After the due date, an error will be returned. Note that you can delete one or more pieces of evidence with a single call. ## Request [​](https://developers.splitit.com/api/chargebacks/delete-evidence/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Splitit dispute id - application/json ### Body **Ids** string\[\] list of evidence ids to delete ## Responses [​](https://developers.splitit.com/api/chargebacks/delete-evidence/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Chargeback** object required **Id** stringrequired **DisputeCreatedDate** date-timerequired **DueDate** date-timerequired **InstallmentPlanNumber** stringrequired **InstallmentNumber** int64required **PlanStatus** stringrequired **TransactionId** stringrequired **MerchantName** stringrequired **TotalPlanAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **DisputeAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **Status** DisputeStatus (string)required **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] **PlanActivatedDate** date-time **ReasonCode** stringrequired **Evidences** object\[\] required Array \[\ \ **EvidenceId** stringrequired\ \ **UploadedAt** date-timerequired\ \ **FileName** stringrequired\ \ **FileType** stringrequired\ \ \] **Comments** object\[\] required Array \[\ \ **CommentId** stringrequired\ \ **Text** stringrequired\ \ **CommentAt** date-timerequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Chargeback": { "Id": "string", "DisputeCreatedDate": "2024-06-06T16:41:09.396Z", "DueDate": "2024-06-06T16:41:09.396Z", "InstallmentPlanNumber": "string", "InstallmentNumber": 0, "PlanStatus": "string", "TransactionId": "string", "MerchantName": "string", "TotalPlanAmount": { "Amount": 0, "CurrencyCode": "string" }, "DisputeAmount": { "Amount": 0, "CurrencyCode": "string" }, "Status": "Open", "PlanActivatedDate": "2024-06-06T16:41:09.396Z", "ReasonCode": "string", "Evidences": [\ {\ "EvidenceId": "string",\ "UploadedAt": "2024-06-06T16:41:09.396Z",\ "FileName": "string",\ "FileType": "string"\ }\ ], "Comments": [\ {\ "CommentId": "string",\ "Text": "string",\ "CommentAt": "2024-06-06T16:41:09.396Z"\ }\ ] } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X DELETE 'https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/delete-evidence' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "Ids": [\ "string"\ ] }' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Body ``` { "Ids": [\ "string"\ ] } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/merchant-hub/create-new-plans/#__docusaurus_skipToContent_fallback) On this page **Create Plan** in the left-hand menu brings up a window with several options for creating plans. ![select merchant](https://developers.splitit.com/assets/images/hub-create-new-plan-c07ee609580cbb01397661343bcc32e0.png) ## 1\. Select Your Merchant and Store [​](https://developers.splitit.com/merchant-hub/create-new-plans/\#1-select-your-merchant-and-store "Direct link to 1. Select Your Merchant and Store") Begin by selecting your desired merchant from the dropdown, then your desired store (you can use the “x” to close a selection) ![select merchant](https://developers.splitit.com/assets/images/hub-select-merchant-a62db9b0159a04847ef2dca12aff5334.png) Click **Continue**. ## 2\. Add Order Details [​](https://developers.splitit.com/merchant-hub/create-new-plans/\#2-add-order-details "Direct link to 2. Add Order Details") Expand the Add Order Details section by clicking on the down arrow at upper right. ![order details](https://developers.splitit.com/assets/images/hub-add-order-details-54f1cf1ee55b6c0535bdc36874342e21.png) Fill in Total Plan Amount, select the currency and add an optional Order Id/Number. Make sure all details are accurate, then click **Continue**. ## 3\. Send Plan to Your Shopper [​](https://developers.splitit.com/merchant-hub/create-new-plans/\#3-send-plan-to-your-shopper "Direct link to 3. Send Plan to Your Shopper") You have four options for collecting payment from your shopper: a Payment Form Link, Email, SMS or QR Code. **Link** Click **Copy Link**, then provide your user with the link, which will take them to checkout with a payment form. ![send to link](https://developers.splitit.com/assets/images/hub-share-link-0b70958df5fca3b08a348707cff95158.png) **Email** Clicking **Email** allows you to enter an email to send the plan to. ![send to email](https://developers.splitit.com/assets/images/hub-email-link-e974fb0341b40d6b8f757b23e5ca8431.png) **SMS** Clicking **SMS** lets you enter a phone number to send the plan to. ![send to sms](https://developers.splitit.com/assets/images/hub-sms-link-6de3a71cb951f24fee641f71645600e1.png) **QR Code** **Scan QR** provides you with a QR Code the shopper can scan. ![send to qr](https://developers.splitit.com/assets/images/hub-qr-link-ad2c927c5fce4562a2d772a2e3f49184.png) - [1\. Select Your Merchant and Store](https://developers.splitit.com/merchant-hub/create-new-plans/#1-select-your-merchant-and-store) - [2\. Add Order Details](https://developers.splitit.com/merchant-hub/create-new-plans/#2-add-order-details) - [3\. Send Plan to Your Shopper](https://developers.splitit.com/merchant-hub/create-new-plans/#3-send-plan-to-your-shopper)[Skip to main content](https://developers.splitit.com/api/keys/introduction/#__docusaurus_skipToContent_fallback) On this page Version: 1.0.0 # Introduction Splitit's Key Exchange Server allows you to both create and store encryption keys in order to enable secure communication with Splitit. You can use keys to download encrypted reports or credentials from Splitit, to verify the authenticity of Splitit communications, to send encrypted communications to Splitit, or to have Splitit verify the authenticity of your communications. The Key Exchange Server lets you generate keys, register keys you have generated yourself, fetch info for keys, and delete and edit existing keys. #### General Guidelines [​](https://developers.splitit.com/api/keys/introduction/\#general-guidelines "Direct link to General Guidelines") - Each key is associated with an owner, identified by a unique code given to you by Splitit [support](mailto:support@splitit.com). - Each key consists of a public component and may have an optional private component. - When creating keys, if an expiration date is not explicitly set, a default expiration date is applied. - It is possible to use multiple keys in parallel (expiration overlap is allowed). The recommended key expiration is 3-6 months. - For debugging and issues, please preserve the response header _x-splitit-traceid_ and provide it with the issue description and request body (if possible) to Splitit [support](mailto:support@splitit.com). - Key owners have the ability to define a set of allowed subdomains (enabled by Splitit [support](mailto:support@splitit.com)). These subdomains are relevant to mTLS (mutual Transport Layer Security) settings. ## Authentication [​](https://developers.splitit.com/api/keys/introduction/\#authentication "Direct link to Authentication") - HTTP: Bearer Auth | Security Scheme Type: | http | | HTTP Authorization Scheme: | bearer |[Skip to main content](https://developers.splitit.com/category/technical-support/#__docusaurus_skipToContent_fallback) [**📄️Support Request** \\ Please fill out a merchant support request.](https://developers.splitit.com/technical-support/contact)[**📄️Google Pay** \\ Shoppers can use Google Pay™ with Splitit by simply selecting a tab on Splitit’s Hosted Form Modal, a modal that overlays your site. This lets shoppers pay with cards saved in their Google accounts, which are charged by your selected Gateway (Visa, Mastercard, Amex, Discover, and UPI are accepted).](https://developers.splitit.com/technical-support/Google)[**📄️Status** \\ Powered by Atlassian](https://developers.splitit.com/technical-support/status)[Skip to main content](https://developers.splitit.com/api/v3/update-order-by-identifier/#__docusaurus_skipToContent_fallback) # Update Plan By Alternate Field ``` PUT https://web-api-v3.sandbox.splitit.com/api/installmentplans/updateorder ``` Locate a plan by `RefOrderNumber` or `ExtendedParams` then carry out post-authorization activities related to the plan, such as updating the order number, updating the tracking number, updating shipping status or updating the amount of the plan (if it hasn't been captured yet). You can also use this endpoint to capture the first installment from a plan that has only been authorized but not yet captured. Note that `RefOrderNumber` or `ExtendedParams` were optionally specified by you upon plan creation. ## Request [​](https://developers.splitit.com/api/v3/update-order-by-identifier/\#request "Direct link to Request") ### Header Parameters **X-Splitit-IdempotencyKey**string - application/json ### Body **required** **RefOrderNumber** string **TrackingNumber** string **Capture** boolean **NewAmount** number Use to update plan amount **if plan amount hasn't been captured yet** (i.e. _AutoCapture_ was set to _false_ in the [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) or [Create](https://developers.splitit.com/api/v3/installment-plan) operation). In addition, 1. amount must be more than original amount 2. first email to customer will be sent upon capture **ShippingStatus** string **Possible values:** \[ `Shipped`, `Delivered`\] **Identifier** object Use the fields in this object to locate your plan **RefOrderNumber** string **InstallmentPlanNumber** string **ExtendedParams** object **property name\*** string ## Responses [​](https://developers.splitit.com/api/v3/update-order-by-identifier/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-503 - 400-561 - 400-578 - 400-599 - 400-640 - 400-1041 - 400-5911 Success - application/json - Schema - Example (from schema) **Schema** **RefOrderNumber** string **InstallmentPlanNumber** string **Status** stringrequired **Possible values:** \[ `Initialized`, `PendingCapture`, `Active`, `Cleared`, `Canceled`\] **ShippingStatus** stringrequired **Possible values:** \[ `Pending`, `Shipped`, `Delivered`\] ```codeBlockLines_e6Vv { "RefOrderNumber": "string", "InstallmentPlanNumber": "string", "Status": "Initialized", "ShippingStatus": "Pending" } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInstallmentPlanStatus: Status does not allow updating order (example: request capture for plan that was already captured). - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` The input parameters or parameter combination for the updated plan is not supported. (New amount is lower than original amount, can only be higher) - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidPlanStrategy: We are sorry for the inconvenience, but this plan is not available. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyMerchantDataProblem: Sorry, but there has been a processing error with this merchant. Please contact our support for assistance. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` IdempotencyHashMismatchError: Same Idempotency key with different payload identified. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInternalUrlSentToOms: Plan is not in the correct state to process this request. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X PUT 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/updateorder' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "RefOrderNumber": "MerchantOrder123", "TrackingNumber": "abc46265", "Capture": true, "ShippingStatus": "Shipped", "Identifier": { "InstallmentPlanNumber": "02DZLSZ2TZS9MU4Z8E0C" }, "NewAmount": 26.59 }' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters Show optional parameters X-Splitit-IdempotencyKey — header Body required ``` { "RefOrderNumber": "MerchantOrder123", "TrackingNumber": "abc46265", "Capture": true, "ShippingStatus": "Shipped", "Identifier": { "InstallmentPlanNumber": "02DZLSZ2TZS9MU4Z8E0C" }, "NewAmount": 26.59 } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/chargebacks-api/#__docusaurus_skipToContent_fallback) [**📄️Introduction** \\ The Chargebacks API allows merchants to manage open disputes via API, rather in the \[Merchant Portal\](https://merchant.splitit.com) (which has identical functionality). The Chargebacks API provides endpoints to accept chargebacks (decline to fight them), get information about chargebacks, submit and delete evidence for chargebacks, and submit and delete comments for chargebacks. Things to know-](https://developers.splitit.com/api/chargebacks/introduction)[**📄️Get Splitit Token** \\ Authenticate using your \*client\_id\* and \*client\_secret\* from your \[merchant portal\](https://merchant.sandbox.splitit.com) (Splitit support will also have to enable Chargeback API access for you).](https://developers.splitit.com/api/chargebacks/get-splitit-token)[**📄️Get All Chargebacks** \\ Returns a list of all open chargebacks against the merchant. Supports pagination. You can optionally specify a date range and/or status type. A successful response includes extensive info about the dispute, including created date, id, due date, etc.](https://developers.splitit.com/api/chargebacks/get-all-chargebacks)[**📄️Get a Single Chargeback** \\ Returns a single chargeback that was opened against the merchant. A successful response includes creation date, dispute ID, due date, a list of submitted evidence and comments, etc.](https://developers.splitit.com/api/chargebacks/get-a-single-chargeback)[**📄️Accept a Chargeback** \\ For an open dispute, you can choose not to fight back but rather to accept the chargeback. After this call is performed, you will not be able to add/remove evidence or comments.](https://developers.splitit.com/api/chargebacks/accept-a-chargeback)[**📄️Upload Evidence** \\ For an open dispute, you have the ability to upload a file as evidence. It can be submitted until the \*DueDate\* value (as returned in responses from the \*Get\* endpoints). After the \*DueDate\* it will return an appropriate error. Note that the max file size for a piece of evidence is 4MB. A successful response records only the single evidence submitted (and includes evidence id, time of submission, file name and type, etc.).](https://developers.splitit.com/api/chargebacks/upload-evidence)[**📄️Delete Evidence** \\ For an open dispute, you have the ability to delete previously submitted evidence. It can be deleted up until the due date of the dispute (you can receive \*DueDate\* back from the \*Get\* endpoints). After the due date, an error will be returned. Note that you can delete one or more pieces of evidence with a single call.](https://developers.splitit.com/api/chargebacks/delete-evidence)[**📄️Add Comment** \\ You can also add a textual comment to your dispute up until its due date (after the due date, an appropriate error will be returned). A successful response will include the single comment that was submitted (not all comments).](https://developers.splitit.com/api/chargebacks/add-comment)[**📄️Delete Comment** \\ You can delete a comment up until your dispute's due date (after the due date, an appropriate error will be returned). A successful response will include the single comment that was deleted (not all comments).](https://developers.splitit.com/api/chargebacks/delete-comment)[**📄️Create a Chargeback** \\ Merchants with the proper permissions can create a chargeback in the Splitit system (you may want to do this, for example, if you received notice of a chargeback from your processor). Created chargebacks have \*Open\* status.](https://developers.splitit.com/api/chargebacks/create-a-chargeback)[**📄️Update Chargeback Status** \\ Change the status of a chargeback upon receiving notification from your provider (your account must have the proper permissions to call this endpoint).](https://developers.splitit.com/api/chargebacks/update-chargeback-status)[Skip to main content](https://developers.splitit.com/category/email-journeys/#__docusaurus_skipToContent_fallback) [**📄️Shopper Emails** \\ Emails are configured by Splitit support, but you can see examples of the emails your shopper will receive below.](https://developers.splitit.com/merchant-portal/shopper-emails)[**📄️Merchant Emails** \\ Emails are configured by Splitit support, but if you are a partner, you can see examples of the emails your merchants will receive below, as well as examples of chargeback emails.](https://developers.splitit.com/merchant-portal/merchant-emails)[Skip to main content](https://developers.splitit.com/api/chargebacks/upload-evidence/#__docusaurus_skipToContent_fallback) # Upload Evidence ``` POST https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/upload-evidence ``` For an open dispute, you have the ability to upload a file as evidence. It can be submitted until the _DueDate_ value (as returned in responses from the _Get_ endpoints). After the _DueDate_ it will return an appropriate error. Note that the max file size for a piece of evidence is 4MB. A successful response records only the single evidence submitted (and includes evidence id, time of submission, file name and type, etc.). ## Request [​](https://developers.splitit.com/api/chargebacks/upload-evidence/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Splitit dispute id - multipart/form-data ### Body **File** binary Evidence in either PDF, TIFF, PNG or JPEG format ## Responses [​](https://developers.splitit.com/api/chargebacks/upload-evidence/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Evidence** object required **EvidenceId** stringrequired **UploadedAt** date-timerequired **FileName** stringrequired **FileType** stringrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Evidence": { "EvidenceId": "string", "UploadedAt": "2024-06-06T16:41:09.393Z", "FileName": "string", "FileType": "string" } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/upload-evidence' \ -H 'Content-Type: multipart/form-data' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Body File Evidence in either PDF, TIFF, PNG or JPEG format Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/encryption-and-signature-authentication/#__docusaurus_skipToContent_fallback) [**📄️Merchant Side: Encrypting Your API Requests with MLE** \\ You may wish to completely encrypt the content of the communications you send to Splitit. You can achieve this with message-level encryption (MLE). With MLE, you encrypt your communications using Splitit's public key, which Splitit then decrypts on the other end with the corresponding private key.](https://developers.splitit.com/api/using-keys/MLE-for-encrypting-requests)[**📄️Splitit Side: Downloading Encrypted Credentials** \\ For security reasons, your organization may require you to download your credentials from Splitit in a PGP-encrypted format. In order to accomplish this, you will need to provide Splitit with a public key that it can use to encrypt them. You can then decrypt the downloaded credentials on your system with your matching private key.](https://developers.splitit.com/api/using-keys/encrypting-credentials)[**📄️Splitit Side: Downloading Encrypted Reports** \\ For security reasons, your organization may require you to download your reports from Splitit in a PGP-encrypted format. In order to accomplish this, you will need to provide Splitit with a public key that it can use to encrypt the reports and make them available for download. You can then decrypt the reports on your system with your matching private key.](https://developers.splitit.com/api/using-keys/encrypting-reports)[**📄️Splitit Side: Encrypting API Responses** \\ For additional security, you can require that Splitit's API responses be sent to you in an encrypted format. To accomplish this, Splitit will use your public key to encrypt communication that you can then decrypt with your private key.](https://developers.splitit.com/api/using-keys/encrypting-responses)[**📄️Merchant Side: Signature Authentication for Your API Requests** \\ You can sign your transactional calls to Splitit's API V3 by providing Splitit with your public key, then signing your messages with your private key. Using your uploaded public key, Splitit can verify that the communication came from you.](https://developers.splitit.com/api/using-keys/signing-requests)[**📄️Splitit Side: Signature Verification for API Responses** \\ You may wish to definitively verify that responses from the Splitit APIs originated from the Splitit APIs. In order to do this, you can request that Splitit API responses be signed. In this process, Splitit uses a private key to sign responses, which you can then verify originated at Splitit by implementing the corresponding public key.](https://developers.splitit.com/api/using-keys/signing-responses)[Skip to main content](https://developers.splitit.com/category/installments-api-v3/#__docusaurus_skipToContent_fallback) [**📄️Introduction** \\ Splitit's Installments API is the primary Splitit tool for establishing and maintaining installment plans. Use it to verify shopper eligibility, create plans with or without immediate authorization, get plan](https://developers.splitit.com/api/v3/introduction)[**📄️Get Splitit Token** \\ To get a token, you will need your \*client\_id\* and \*client\_secret\* from your \[Merchant Portal\](https://merchant.sandbox.splitit.com). In your Merchant Portal, go to \*\*Credentials\*\* on the left-hand side. Find your \*\*Username\*\* (which is \*client\_id\*) and generate or use an existing \*\*Active Password\*\* (which is \*client\_secret\*).](https://developers.splitit.com/api/v3/authenticate)[**📄️Check Eligibility** \\ As your customer begins to checkout, use this endpoint to verify their overall eligibility for Splitit installment plans and to determine plans for which they are eligible. This endpoint can be called repeatedly before and during checkout, for example you may call it after each field on a page is filled out. The Splitit API compares and updates the plan based on each new body as it arrives.](https://developers.splitit.com/api/v3/check-eligibility)[**📄️Create Installment Plan** \\ Once you are ready to check your customer out, you can use the \`Create\` endpoint.](https://developers.splitit.com/api/v3/installment-plan)[**📄️Initiate Installment Plan** \\ Initiate establishes an installment plan but doesn't finalize it, and is thus intended for use](https://developers.splitit.com/api/v3/initiate-installment-plan)[**📄️Verify Authorization** \\ You must call Verify Authorization in cases when plan authorization and order closure do not happen simultaneously. An example of this would be when a customer checks out with a Payment Form or Flex Form, or is redirected for 3DS. To call it, you need to provide the plan number you received in the success response from \[Initiate\](/api/v3/initiate-installment-plan).](https://developers.splitit.com/api/v3/verify-authorization)[**📄️Fetch Plan by Number** \\ Retrieve an installment plan's information by providing its number in your path.](https://developers.splitit.com/api/v3/get-installment-plan)[**📄️Fetch Plan(s) by Alternate Field** \\ Retrieves a plan by \`RefOrderNumber\` or \`ExtendedParams\`. Note that \`RefOrderNumber\` or \`ExtendedParams\` were optionally specified by you upon plan creation.](https://developers.splitit.com/api/v3/installment-plan-search)[**📄️Update Plan by Number** \\ Locate a plan by installment number then carry out post-authorization activities related to the plan, such as updating the order number, updating the tracking number, updating shipping status, or updating the plan amount (if it hasn't been captured yet). You can also use this endpoint to capture the first installment from a plan that has only been authorized but not yet captured.](https://developers.splitit.com/api/v3/update-order)[**📄️Update Plan By Alternate Field** \\ Locate a plan by \`RefOrderNumber\` or \`ExtendedParams\` then carry out post-authorization activities related to the plan, such as updating the order number, updating the tracking number, updating shipping status or updating the amount of the plan (if it hasn't been captured yet). You can also use this endpoint to capture the first installment from a plan that has only been authorized but not yet captured. Note that \`RefOrderNumber\` or \`ExtendedParams\` were optionally specified by you upon plan creation.](https://developers.splitit.com/api/v3/update-order-by-identifier)[**📄️Refund a Plan** \\ Refund part or all of an installment plan.](https://developers.splitit.com/api/v3/refund)[**📄️Errors List** \\ Sort, filter and search for API v3 errors in the table below (click on header to sort and hamburger menu on right side of header for filters). You can also reorder columns by dragging and expand columns with \|.](https://developers.splitit.com/api/v3/errors)[Skip to main content](https://developers.splitit.com/api/sdks/#__docusaurus_skipToContent_fallback) # SDKs Splitit merchants can integrate directly with our APIs or use one of our server-side SDKs. We currently offer SDKs for the following languages: - [.Net C#](https://github.com/konfig-dev/splitit-web-sdks/tree/main/csharp) (or [get from Nuget](https://nuget.org/packages/Splitit.Web.Net/3.0.2)) - [TypeScript](https://github.com/konfig-dev/splitit-web-sdks/tree/main/typescript) (or [get from NPM](https://www.npmjs.com/package/splitit-web-typescript-sdk/v/4.0.3)) - [Java](https://github.com/konfig-dev/splitit-web-sdks/tree/main/java) (or [get from Maven Repository](https://central.sonatype.com/artifact/com.konfigthis/splitit-web-java-sdk/3.0.2)) - [PHP (7.0+ with Guzzle 7)](https://github.com/konfig-dev/splitit-web-php-sdk) (or [get from Packagist](https://packagist.org/packages/konfig/splitit-web-php-sdk#3.0.2)) - [PHP (7.0+ with Guzzle 6)](https://github.com/konfig-dev/splitit-web-php-guzzle6-sdk) (or [get from Packagist](https://packagist.org/packages/konfig/splitit-web-php-guzzle6-sdk#3.0.3)) - [Python](https://github.com/konfig-dev/splitit-web-sdks/tree/main/python) (or [get from Python Package Index](https://pypi.org/project/splitit-web-python-sdk/3.0.2)) - [Go](https://github.com/konfig-dev/splitit-web-sdks/tree/main/go) (or [get from Go.dev](https://pkg.go.dev/github.com/konfig-dev/splitit-web-sdks/go))[Skip to main content](https://developers.splitit.com/api/keys/fetch-a-key/#__docusaurus_skipToContent_fallback) # Fetch a Key ``` GET https://key-exchange.sandbox.splitit.com/api/v1/key/:id ``` This endpoint retrieves general information for a specific key, including the associated public key. ## Request [​](https://developers.splitit.com/api/keys/fetch-a-key/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Note that this field is returned as _UniqueID_ from some calls. ## Responses [​](https://developers.splitit.com/api/keys/fetch-a-key/\#responses "Direct link to Responses") - 200 - 400 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **OwnerCode** string **PublicKey** string **UniqueId** string **Usage** string\[\] **Possible values:** \[ `Unknown`, `Reports`, `Authentication`, `MessageLevelEncryption`, `CredentialsDownload`, `ResponseSignature`\] **Type** stringrequired **Possible values:** \[ `RSA`, `PGP`\] **ExpirationUtc** date-time **RelatedClientId** string **HasPrivateKey** booleanrequired ```codeBlockLines_e6Vv { "OwnerCode": "string", "PublicKey": "string", "UniqueId": "string", "Usage": [\ "Unknown"\ ], "Type": "RSA", "ExpirationUtc": "2024-06-06T16:41:09.066Z", "RelatedClientId": "string", "HasPrivateKey": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://key-exchange.sandbox.splitit.com/api/v1/key/:id' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://key-exchange.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/v3/errors/#__docusaurus_skipToContent_fallback) Sort, filter and search for API v3 errors in the table below (click on header to sort and hamburger menu on right side of header for filters). You can also reorder columns by dragging and expand columns with \|. Note that any 400 or 500 response you receive back from API v3 is an error. This table lists additional info about individual errors. 400 Errors Code Error Description Endpoints 400-503 InvalidInstallmentPlanStatus Please close this window. Then click 'Splitit Payment' to create your payment plan (you haven't been charged yet) or in relation to Update operation: 'Status does not allow updating order (example: request capture for plan that was already captured) Update 400-504 InvalidCCCardTypeNotSupported Sorry, but we do not accept debit cards. We can only accept Visa and MasterCard credit cards at this time. Create 400-505 InvalidNumberOfInstallments The number of installments is not available at this store. Please check available options and try again. Thank you! Create, Initiate 400-510 InvalidCardholderName The card holder name must include at least 3 characters. Please check and try again Create 400-511 InvalidAmount Invalid amount sent, such as below your minimum amount or above your maximum amount. Create, Initiate, Check Eligibility,Refund 400-520 InvalidCVV The CVV number must include at least 3 characters. Please check and try again. Create 400-521 InvalidCardNumber This credit card number is not valid. Please check your card and try again. Create 400-522 InvalidExpirationDate The entered expiration date is not a valid date . Please check your card and try again. Create 400-524 InvalidEmailFormat Invalid email. Please check that the email address is entered in the correct format. (For example: name@mail.com) Create, Initiate 400-526 InvalidZIPCode The ZIP code must include at least 3 characters. Please check and try again. Create,Initiate 400-528 InvalidCCIssueCountryNotSupportedByTerminal We are sorry, but we currently do not accept cards issued by this country Create, Initiate 400-529 CurrencyNotSupported We are sorry, but we currently do not accept this currency Check Eligibility 400-532 CountrySubdivisionNotSupported Sorry, but Splitit is currently not available in your state. Please contact Splitit's customer service desk for help Create, Initiate 400-540 InvalidExpirationDateFormat Please enter the expiration date as MM/DD/YYYY. Create 400-542 InvalidCCCardBrandNotSupported Sorry but we do not accept this type of credit card. Please use {{SupportedCardBrands}} to complete your purchase. Create, CheckEligibility 400-543 ApprovePlan\_NoApprovalEvidence Evidence of customer approval not provided. Create 400-544 PlanWithTheSamePaymentDataAlreadyBeenCreatedLately A similar purchase has been processed with this credit card. Please contact your merchant's customer support number for more information. Create 400-550 CultureNameNotValid Culture (language used in interfaces and communications) not valid. Create, Initiate 400-551 CultureNotSupported Culture (language used in interfaces and communications) not supported. Create, Initiate 400-554 UnknownZipCode The ZIP code you entered is not valid. Please try again. Create, Initiate 400-562 RefundRequestedAmountExceededPlanRefundableAmount The refund amount requested exceeded the plan's refundable amount. Refund toof Pageof[Skip to main content](https://developers.splitit.com/api/v3/installment-plan/#__docusaurus_skipToContent_fallback) # Create Installment Plan ``` POST https://web-api-v3.sandbox.splitit.com/api/installmentplans/ ``` Once you are ready to check your customer out, you can use the `Create` endpoint. `Create` enables you to pass in PCI sensitive data directly to the Splitit API, and thus requires SAQ-D PCI certification. A successful `Create` operation creates an authorization on a customer's credit card, and if `AutoCapture` has been set to `true` within the request body, both authorization and capture of the first installment will be completed (if `AutoCapture` is set to false, you will have to call [Update Plan](https://developers.splitit.com/api/v3/update-order) later). If Splitit is unable to successfully secure an authorization on a credit card, an error message will be returned in the response. Note that for funded plans, a customer's `BillingAddress` object must be filled out. In addition, if you are completely managing the input of PCI sensitive data on your side, it’s essential to ensure your customer has approved the Splitit specific terms and conditions. ## Request [​](https://developers.splitit.com/api/v3/installment-plan/\#request "Direct link to Request") ### Header Parameters **X-Splitit-IdempotencyKey**string **X-Splitit-TestMode**string **Possible values:** \[ `None`, `Regular`, `Fast`, `Automation`\] - application/json ### Body **AutoCapture** boolean Indicates whether to capture the first installment automatically when creating the plan, or to wait for explicit indication to do the first capture (the default is true) **Attempt3dSecure** boolean Indicates whether to run a 3D secure verification (default is `false`) **TermsAndConditionsAccepted** booleanrequired Indicates that the shopper accepted your Terms and Conditions **Shopper** object required **FullName** string **Email** stringrequired **PhoneNumber** string **Culture** string **PlanData** object required **TotalAmount** decimalrequired The total order amount **Currency** stringrequired **NumberOfInstallments** int32required When populated will be used to display as default in Payment Form **TerminalId** stringrequired The merchant terminal identifier **PurchaseMethod** string **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\] How purchase was made (default is `ECommerce`) **RefOrderNumber** string Reference order number for merchant's use **ExtendedParams** object Additional data that can be added as key/value pair parameters by merchant (and later can be retrieved by GET) **property name\*** string **FirstInstallmentAmount** decimal **FirstInstallmentDate** date-time **BillingAddress** object **AddressLine1** string **AddressLine2** string **City** string **Country** string ISO 3166-3 code **State** string ISO 3166-2 code **Zip** string **PaymentMethod** object required **Type** **Possible values:** \[ `Card`, `SplititToken`\] **Card** object required **CardHolderFullName** string **CardNumber** stringrequired **CardExpYear** stringrequired **CardExpMonth** stringrequired **CardCvv** string **CardBrand** string **Possible values:** \[ `Mastercard`, `Visa`, `AmericanExpress`, `Maestro`, `JCB`, `CUP`, `UPI`, `Discover`, `Other`\] **CardType** string **Possible values:** \[ `Credit`, `Debit`, `Charge`, `Other`, `Prepaid`, `VisaDeferredDebit`, `NetworkOnly`\] **Token** string **RedirectUrls** object **AuthorizeSucceeded** string **Succeeded** string **AuthorizeFailed** string **Failed** string **EventsEndpoints** object **CreateSucceeded** string ## Responses [​](https://developers.splitit.com/api/v3/installment-plan/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-503 - 400-504 - 400-505 - 400-510 - 400-511 - 400-520 - 400-521 - 400-522 - 400-524 - 400-526 - 400-528 - 400-529 - 400-532 - 400-540 - 400-542 - 400-543 - 400-544 - 400-550 - 400-551 - 400-554 - 400-566 - 400-567 - 400-568 - 400-569 - 400-570 - 400-571 - 400-572 - 400-573 - 400-574 - 400-575 - 400-578 - 400-580 - 400-594 - 400-595 - 400-596 - 400-599 - 400-600 - 400-601 - 400-602 - 400-603 - 400-606 - 400-607 - 400-608 - 400-609 - 400-610 - 400-630 - 400-640 - 400-641 - 400-643 - 400-644 - 400-806 - 400-1041 - 400-5041 - 400-5042 - 400-5421 - 400-5422 - 400-5801 - 400-5802 - 400-5911 - 400-5982 Success - application/json - Schema - Example (from schema) **Schema** **InstallmentPlanNumber** string **DateCreated** date-timerequired **RefOrderNumber** string **PurchaseMethod** string **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\] How purchase was made (default is `ECommerce`) **Status** stringrequired **Possible values:** \[ `Initialized`, `PendingCapture`, `Active`, `Cleared`, `Canceled`\] **Currency** string **OriginalAmount** decimal **Amount** decimal **ExtendedParams** object **property name\*** string **Authorization** object **Status** stringrequired **Possible values:** \[ `NA`, `Succeeded`, `Pending3DS`, `Failed`\] **Date** date-time **SplititErrorResultCode** string **GatewayTransactionID** string **GatewayResultCode** string **GatewayResultMessage** string **ThreeDSRedirect** object **Url** string **Verb** string **Params** object **property name\*** string **CAVV** string **ECI** string **Shopper** object **FullName** string **Email** stringrequired **PhoneNumber** string **Culture** string **BillingAddress** object **AddressLine** string **AddressLine2** string **City** string **Country** string ISO 3166 Country name OR 2-character code OR 3-character code **State** string ISO 3166-2 State **Zip** string **PaymentMethod** object **Type** **Possible values:** \[ `Card`, `SplititToken`\] **Card** object required **CardHolderFullName** string **CardNumber** stringrequired **CardExpYear** stringrequired **CardExpMonth** stringrequired **CardCvv** string **CardBrand** string **Possible values:** \[ `Mastercard`, `Visa`, `AmericanExpress`, `Maestro`, `JCB`, `CUP`, `UPI`, `Discover`, `Other`\] **CardType** string **Possible values:** \[ `Credit`, `Debit`, `Charge`, `Other`, `Prepaid`, `VisaDeferredDebit`, `NetworkOnly`\] **Token** string **Installments** object\[\] Array \[\ \ **InstallmentNumber** int32required\ \ **Amount** decimalrequired\ \ **ProcessDateTime** date-time\ \ **Status** stringrequired\ \ **Possible values:** \[ `Pending`, `Processed`, `Canceled`\]\ \ \] **Links** object **Checkout** string **LearnMore** string **TermsConditions** string **PrivacyPolicy** string ```codeBlockLines_e6Vv { "InstallmentPlanNumber": "string", "DateCreated": "2024-07-24T18:00:33.172Z", "RefOrderNumber": "string", "PurchaseMethod": "InStore", "Status": "Initialized", "Currency": "string", "OriginalAmount": 0, "Amount": 0, "ExtendedParams": {}, "Authorization": { "Status": "NA", "Date": "2024-07-24T18:00:33.172Z", "SplititErrorResultCode": "string", "GatewayTransactionID": "string", "GatewayResultCode": "string", "GatewayResultMessage": "string", "ThreeDSRedirect": { "Url": "string", "Verb": "string", "Params": {} }, "CAVV": "string", "ECI": "string" }, "Shopper": { "FullName": "string", "Email": "string", "PhoneNumber": "string", "Culture": "string" }, "BillingAddress": { "AddressLine": "string", "AddressLine2": "string", "City": "string", "Country": "string", "State": "string", "Zip": "string" }, "PaymentMethod": { "Card": { "CardHolderFullName": "string", "CardNumber": "string", "CardExpYear": "string", "CardExpMonth": "string", "CardCvv": "string", "CardBrand": "Mastercard", "CardType": "Credit" }, "Token": "string" }, "Installments": [\ {\ "InstallmentNumber": 0,\ "Amount": 0,\ "ProcessDateTime": "2024-07-24T18:00:33.172Z",\ "Status": "Pending"\ }\ ], "Links": { "Checkout": "string", "LearnMore": "string", "TermsConditions": "string", "PrivacyPolicy": "string" } } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInstallmentPlanStatus: Please close this window. Then click 'Splitit Payment' to create your payment plan (you haven't been charged yet). - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardTypeNotSupported: Sorry, but we do not accept debit cards. We can only accept Visa and MasterCard credit cards at this time. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidNumberOfInstallments: The number of installments is not available at this store. Please check available options and try again. Thank you! - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCardholderName: The cardholder name must include at least 3 characters. Please check and try again - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidAmount: Invalid amount sent, such as below your minimum amount or above your maximum amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCVV: The CVV number must include at least 3 characters. Please check and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCardNumber: This credit card number is not valid. Please check your card and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidExpirationDate: The entered expiration date is not a valid date. Please check your card and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidEmailFormat: Invalid email. Please check that the email address is entered in the correct format. (For example: [name@mail.com](mailto:name@mail.com)) - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidZIPCode: The ZIP code must include at least 3 characters. Please check and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCIssueCountryNotSupportedByTerminal: We are sorry, but we currently do not accept cards issued by this country. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CurrencyNotSupported: We are sorry, but we currently do not accept this currency. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CountrySubdivisionNotSupported: Sorry, but Splitit is currently not available in your state. Please contact Splitit's customer service desk for help - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidExpirationDateFormat: Please enter the expiration date as MM/DD/YYYY. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardBrandNotSupported: Sorry but we do not accept this type of credit card. Please use \[\[SupportedCardBrands\]\] to complete your purchase. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` ApprovePlan\_NoApprovalEvidence: Evidence of customer approval not provided. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` PlanWithTheSamePaymentDataAlreadyBeenCreatedLately: A similar purchase has been processed with this credit card. Please contact your merchant's customer support number for more information. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CultureNameNotValid: Culture (language used in interfaces and communications) not valid. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CultureNotSupported: Culture (language used in interfaces and communications) not supported. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` UnknownZipCode: The ZIP code you entered is not valid. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` AddressDataIsMissingOrPartiallyInitiated: Please enter the cardholder's complete address. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CardHolderNameIsMissing: Please enter the cardholder's name. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CardNumberIsMissing: Please enter the full credit card number. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CardExpirationMonthIsMissing: Please enter the credit card's expiration month. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CardExpirationYearIsMissing: Please insert credit card's expiration year. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` NumberOfInstallmentNotDefined: Please select the number of installments for this purchase. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidStateCode: We were unable to find this state code. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` EmailsMissing: Please enter your email address. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` ConsumerFullNameIsMissing: Please enter your full name. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CurrencyMustBeDefinedOnTransaction: Please select the currency you wish to use. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidPlanStrategy: We are sorry for the inconvenience, but this plan is not available. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCcPrepaidCardNotSupported: We do not currently accept prepaid cards, but we do accept credit cards. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` FraudDetected: Sorry, but we were unable to process your payment. Please reach out to our customer support team at [support@splitit.com](mailto:support@splitit.com). - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` PhoneIsMissing: Please enter your phone number. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidPhoneFormat: Please enter your phone number in this format: +1-321-555-1234. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultGeneralError: Gateway was unable to process this request. Please try using a different card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataAVSZip: The ZIP code you entered is not valid. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataAVSAddress: The address does not match. Please check your card and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataCVV: The CVV number does not match. Please check your card and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataAVS: Address or zip/post code failed validation. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataNumber: This credit card number is not valid. Please check your card and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataGeneralProblem: Sorry, but your card was not able to be processed. Please try a different card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCDataInsufficientFunds: Sorry, but there is not enough available credit on this card to cover the full amount of your purchase. Please try a different card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyResultCCWasDeclined: Sorry, but your card was not accepted. Please try a different card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyConnectivityProblem: Sorry, but there was an error processing your payment. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyMerchantDataProblem: Sorry, but there has been a processing error with this merchant. Please contact our support for assistance. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Gtwy3DSRequired: 3D secure verification is required. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Gtwy3DAuthenticationFailed: 3DS authentication against the issuer failed. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyFraudDetected: Transaction was suspected to be fraudulent by the GW. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` TerminalApiKeyMissing: Terminal ID not found. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` IdempotencyHashMismatchError: Same Idempotency key with different payload identified. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardTypeNotSupportedMoreThanXInstallments: \[\[CardType\]\] cards support only up to \[\[MaxInstallmentsLimit\]\] installments. Please reduce the number of installments or provide payment details for a supported credit card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardTypeNotSupportedMoreThanXAmount: \[\[CardType\]\] cards are only supported for purchases up to \[\[Currency\]\]\[\[MaxPlanAmount\]\]. Please provide payment details for a credit card in order to support your total purchase amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardBrandNotSupportedMoreThanXInstallments: \[\[CardBrand\]\] cards are supported only up to \[\[MaxInstallmentsLimit\]\] installments. Please reduce the number of installments or provide payment details for a supported credit card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardBrandNotSupportedMoreThanXAmount: \[\[CardBrand\]\] cards are only supported for purchases up to \[\[Currency\]\]\[\[MaxPlanAmount\]\]. Please try a different card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCcPrepaidCardNotSupportedMoreThanXInstallments: \[\[CardType\]\] cards allow a maximum of \[\[MaxInstallmentsLimit\]\] installments. Please choose fewer installments or try a different credit card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCcPrepaidCardNotSupportedMoreThanXAmount: The maximum purchase for \[\[CardType\]\] cards is \[\[Currency\]\]\[\[MaxPlanAmount\]\]. Please try a different card. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` PlanContextNotValidForAmount: Purchase is only supported for up to \[\[Currency\]\]\[\[MaxPlanAmount\]\]. Please provide payment details for a credit card in order to support your total purchase amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` PlanContextNotValidForAmount: Purchase is only supported for up to \[\[Currency\]\]\[\[MaxPlanAmount\]\]. Please provide payment details for a credit card in order to support your total purchase amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ --data-raw '{ "AutoCapture": true, "Attempt3DSecure": false, "TermsAndConditionsAccepted": true, "PlanData": { "TotalAmount": 50.25, "Currency": "USD", "NumberOfInstallments": 3, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder123", "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "FirstInstallmentAmount": null, "ExtendedParams": { "AnyParameterKey1": "AnyParameterVal1", "AnyParameterKey2": "AnyParameterVal2" } }, "Shopper": { "FullName": "John Doe", "Email": "John.Doe@email.com", "PhoneNumber": "+1-972-111-1111", "Culture": "en-US" }, "BillingAddress": { "AddressLine1": "street name and number", "AddressLine2": "", "City": "NYC", "Country": "USA", "State": "NY", "Zip": "12345" }, "PaymentMethod": { "Type": "Card", "Card": { "CardHolderFullName": "John Doe", "CardNumber": "4111111111111111", "CardExpYear": 2025, "CardExpMonth": 10, "CardCvv": "123" } } }' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters Show optional parameters X-Splitit-IdempotencyKey — header X-Splitit-TestMode — header \-\-\-NoneRegularFastAutomation Body ``` { "AutoCapture": true, "Attempt3DSecure": false, "TermsAndConditionsAccepted": true, "PlanData": { "TotalAmount": 50.25, "Currency": "USD", "NumberOfInstallments": 3, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder123", "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "FirstInstallmentAmount": null, "ExtendedParams": { "AnyParameterKey1": "AnyParameterVal1", "AnyParameterKey2": "AnyParameterVal2" } }, "Shopper": { "FullName": "John Doe", "Email": "John.Doe@email.com", "PhoneNumber": "+1-972-111-1111", "Culture": "en-US" }, "BillingAddress": { "AddressLine1": "street name and number", "AddressLine2": "", "City": "NYC", "Country": "USA", "State": "NY", "Zip": "12345" }, "PaymentMethod": { "Type": "Card", "Card": { "CardHolderFullName": "John Doe", "CardNumber": "4111111111111111", "CardExpYear": 2025, "CardExpMonth": 10, "CardCvv": "123" } } } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/chargebacks/update-chargeback-status/#__docusaurus_skipToContent_fallback) # Update Chargeback Status ``` PUT https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/status ``` Change the status of a chargeback upon receiving notification from your provider (your account must have the proper permissions to call this endpoint). ## Request [​](https://developers.splitit.com/api/chargebacks/update-chargeback-status/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Dispute id - application/json ### Body **required** **Status** string **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] The new status you'd like to change to. If the current status is _Open_, you can only change it to _Won_ or _Lost_. If the current status is _Won_ or _Lost_, you can only change it to _Closed_ **ChangeDate** date-time The date the status was changed. Optional, so if not included in the request, will be set to now (if included, should be a time that is less than or equal to now). Should be in UTC format, e.g. "2024-04-29T14:33:44.613Z" ## Responses [​](https://developers.splitit.com/api/chargebacks/update-chargeback-status/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Chargeback** object required **Id** stringrequired **DisputeCreatedDate** date-timerequired **DueDate** date-timerequired **InstallmentPlanNumber** stringrequired **InstallmentNumber** int64required **PlanStatus** stringrequired **TransactionId** stringrequired **MerchantName** stringrequired **TotalPlanAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **DisputeAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **Status** DisputeStatus (string)required **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] **PlanActivatedDate** date-time **ReasonCode** stringrequired **Evidences** object\[\] required Array \[\ \ **EvidenceId** stringrequired\ \ **UploadedAt** date-timerequired\ \ **FileName** stringrequired\ \ **FileType** stringrequired\ \ \] **Comments** object\[\] required Array \[\ \ **CommentId** stringrequired\ \ **Text** stringrequired\ \ **CommentAt** date-timerequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Chargeback": { "Id": "string", "DisputeCreatedDate": "2024-06-06T16:41:09.410Z", "DueDate": "2024-06-06T16:41:09.410Z", "InstallmentPlanNumber": "string", "InstallmentNumber": 0, "PlanStatus": "string", "TransactionId": "string", "MerchantName": "string", "TotalPlanAmount": { "Amount": 0, "CurrencyCode": "string" }, "DisputeAmount": { "Amount": 0, "CurrencyCode": "string" }, "Status": "Open", "PlanActivatedDate": "2024-06-06T16:41:09.411Z", "ReasonCode": "string", "Evidences": [\ {\ "EvidenceId": "string",\ "UploadedAt": "2024-06-06T16:41:09.411Z",\ "FileName": "string",\ "FileType": "string"\ }\ ], "Comments": [\ {\ "CommentId": "string",\ "Text": "string",\ "CommentAt": "2024-06-06T16:41:09.411Z"\ }\ ] } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Body required ``` { "Status": "Open", "ChangeDate": "2024-04-29T14:33:44.613Z" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/key-exchange-server-api/#__docusaurus_skipToContent_fallback) [**📄️Introduction** \\ Splitit's Key Exchange Server allows you to both create and store encryption keys in order to enable secure communication with Splitit. You can use keys to download encrypted reports or credentials from Splitit, to verify the authenticity of Splitit communications, to send encrypted communications to Splitit, or to have Splitit verify the authenticity of your communications.](https://developers.splitit.com/api/keys/introduction)[**📄️Get Splitit Token** \\ Authenticate using your \*client\_id\* and \*client\_secret\* from your \[merchant portal\](https://merchant.sandbox.splitit.com) (Splitit support will also have to enable key server access for you).](https://developers.splitit.com/api/keys/get-splitit-token)[**📄️Fetch a Key** \\ This endpoint retrieves general information for a specific key, including the associated public key.](https://developers.splitit.com/api/keys/fetch-a-key)[**📄️Delete a Key** \\ Using this endpoint sets the key expiration to the current date and time, effectively disabling the key for further use. Note that this call does not return a 200 message but if you \[fetch\](/api/keys/fetch-a-key) your key again, you will see the new expiration date.](https://developers.splitit.com/api/keys/delete-a-key)[**📄️List All Keys** \\ This endpoint is accessed with your owner name, and returns a list of keys along with non-sensitive information.](https://developers.splitit.com/api/keys/list-all-keys)[**📄️Rotate Public Key** \\ Use this endpoint to change your public key that is stored by Splitit (you should never share a private key with Splitit). In this scenario, Splitit uses your public key to encrypt data sent to you, to verify that communication that came from you is actually from you.](https://developers.splitit.com/api/keys/rotate-public-key)[**📄️Generate Key Pair** \\ Generate a dedicated Splitit key pair that you can use to PGP-encrypt traffic sent to Splitit or to verify that a message coming from Splitit is authentic (RSA). In the first scenario, Splitit securely holds the private key half of the pair and you encrypt your outgoing traffic with the public key half. In the second scenario, you use your public key half to verify that Splitit's communication originated at Splitit (Splitit signs with their private key half).](https://developers.splitit.com/api/keys/generate-key-pair)[**📄️Set Key Expiration** \\ Set the expiry for a key in UTC format. Note that this call does not return a 200 message but if you \[fetch\](/api/keys/fetch-a-key) your key again, you will see the new expiration date.](https://developers.splitit.com/api/keys/set-key-expiration)[**🗃️Encryption and Signature Authentication** \\ 6 items](https://developers.splitit.com/category/encryption-and-signature-authentication)[Skip to main content](https://developers.splitit.com/category/direct-api-implementations/#__docusaurus_skipToContent_fallback) [**📄️Direct API Diagram**](https://developers.splitit.com/direct-api/direct-api-diagram)[**📄️Adding Forter** \\ If you are calling the Splitit APIs directly, you'll need to call Forter for fraud checking. Forter is event based (no longer based on cookies).](https://developers.splitit.com/direct-api/how-to-add-forter)[**📄️3DS for White-Labeling** \\ If you are using Splitit as a white-label solution for creating and completing installment plans, you may need to check out your customer with 3DS. The way to handle this is to redirect your customer to a URL that is returned in the 400-641 error response you receive when completing an installment plan with the Create API. The URL is named ClientRedirectUrl and you can see it in the sample 400-641 error response below:](https://developers.splitit.com/direct-api/white-label-3ds)[Skip to main content](https://developers.splitit.com/api/chargebacks/delete-comment/#__docusaurus_skipToContent_fallback) # Delete Comment ``` DELETE https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/delete-comment/:commentId ``` You can delete a comment up until your dispute's due date (after the due date, an appropriate error will be returned). A successful response will include the single comment that was deleted (not all comments). ## Request [​](https://developers.splitit.com/api/chargebacks/delete-comment/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Splitit dispute id **commentId**stringrequired Comment id within dispute ## Responses [​](https://developers.splitit.com/api/chargebacks/delete-comment/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 - deprecated **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Comment** object required **CommentId** stringrequired **Text** stringrequired **CommentAt** date-timerequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Comment": { "CommentId": "string", "Text": "string", "CommentAt": "2024-06-06T16:41:09.403Z" } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X DELETE 'https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/delete-comment/:commentId' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired commentId — pathrequired Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/ams/partner-profiles-upload-files/#__docusaurus_skipToContent_fallback) # Upload Documents ``` POST https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/upload/:accountId ``` Use this endpoint to upload documents to Splitit (e.g., agreements) for partners or merchants. You can add multiple documents at once. Authentication is by bearer token. ## Request [​](https://developers.splitit.com/api/ams/partner-profiles-upload-files/\#request "Direct link to Request") ### Path Parameters **accountId**stringrequired Id of the added account - multipart/form-data ### Body **Files** binary\[\] PDF, TIFF, PNG or JPEG format ## Responses [​](https://developers.splitit.com/api/ams/partner-profiles-upload-files/\#responses "Direct link to Responses") - 200 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Files** object\[\] Array \[\ \ **FileId** stringrequired\ \ **CreatedOn** date-timerequired\ \ **FileName** stringrequired\ \ **FileType** stringrequired\ \ **FileSize** stringrequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Files": [\ {\ "FileId": "string",\ "CreatedOn": "2024-06-06T16:41:09.475Z",\ "FileName": "string",\ "FileType": "string",\ "FileSize": "string"\ }\ ] } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/upload/:accountId' \ -H 'Content-Type: multipart/form-data' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://account-mgmt-system.sandbox.splitit.com Auth Bearer Token Parameters accountId — pathrequired Body Files Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/chargebacks-management/#__docusaurus_skipToContent_fallback) [**📄️Usage** \\ Access the Chargebacks Management page from the left-hand menu in the Splitit Hub. Here you will see a list of chargebacks associated with your merchant account showing Created Date, Merchant Name, Plan Number, Plan Status, Liability, Reason, Due Date, Chargeback Status, and Internal Status.](https://developers.splitit.com/merchant-hub/chargebacks-management)[**📄️About Chargebacks (Core Funded Merchants)** \\ This document describes chargebacks for Core Funded Merchants.](https://developers.splitit.com/merchant-portal/chargebacks/chargebacks-core-funded)[**📄️About Chargebacks (Managed Merchants)** \\ This document describes chargebacks for Managed Merchants.](https://developers.splitit.com/merchant-portal/chargebacks/chargebacks-managed)[Skip to main content](https://developers.splitit.com/api/reports/available-report-columns/#__docusaurus_skipToContent_fallback) On this page # Available Columns by Report Type ### Reconciliation Report [​](https://developers.splitit.com/api/reports/available-report-columns/\#reconciliation-report "Direct link to Reconciliation Report") - Merchant\_Name - Plan\_Number - Gateway\_Transaction\_Process\_DateTime - Plan\_Funding\_Type - Gateway\_Transaction\_ID - Gateway\_Transaction\_Amount - Gateway\_Transaction\_Type - Gateway\_Transaction\_Currency - Installment\_Number - Number\_Of\_Installments - Is\_Full\_Captured - Order\_Number - Card\_Brand - Card\_Type - Terminal\_Name - Plan\_Amount - Shopper\_Name - Shopper\_Email ### New Plans Report [​](https://developers.splitit.com/api/reports/available-report-columns/\#new-plans-report "Direct link to New Plans Report") - Plan\_Number - Order\_Number - Created\_Date - Total\_Plan\_Amount - Currency - Plan\_Status - Merchant\_Name - Number\_Of\_Installments - Business\_Unit\_Name - Card\_Type - Card\_Brand - Shopper\_Name - Shopper\_Email - Funding\_Type - Terminal\_Name - Plan\_on\_Hold - Paid\_Installments - Delayed\_Installments - Outstanding\_Installments - Outstanding\_Amount - Credit\_Refund\_Amount - Non\_Credit\_Refund\_Amount - Plan\_Created\_By - Plan\_End\_Date - Agent\_Name ### Debit Report [​](https://developers.splitit.com/api/reports/available-report-columns/\#debit-report "Direct link to Debit Report") - Date - Transaction ID - Merchant Name - Business Unit - Plan\_Number - Terminal\_Name - Settlement\_Currency - Plan\_Amount\_After\_Exchange - Total\_Number\_Of\_Installments - Installment\_Number - Order\_Number - Consumer\_Name - Charged\_Amount - Debit\_Merchant\_Date - Debit\_Reason - Card\_Type - Card\_Brand - Amount\_for\_Funding\_Shopper\_Transaction\_Currency - Transaction\_Currency - Transaction\_Amount - Exchange\_Rate - Legacy\_Installment\_Number ### Outstanding Amount Report [​](https://developers.splitit.com/api/reports/available-report-columns/\#outstanding-amount-report "Direct link to Outstanding Amount Report") - Plan\_Number - Installment\_Number - Outstanding\_Amount - Order\_Number - Process\_Date\_Time - Currency - Business\_Unit - Merchant\_Name - Terminal\_Name - Plan\_Created\_Date - Number\_Of\_Installments - Plan\_Status - Plan\_Funding\_Type - Shopper\_Name - Shopper\_Email ### Funding Report (pending deprecation) [​](https://developers.splitit.com/api/reports/available-report-columns/\#funding-report-pending-deprecation "Direct link to Funding Report (pending deprecation)") - Merchant\_Name - Business\_Unit - Terminal\_Name - Plan\_Number - Created\_Date - First\_Charge\_Date - Transaction\_Currency - Transaction\_Amount - Exchange\_Rate - Settlement\_Currency - New\_Amount\_After\_Exchange - Reserve - Variable\_Fee - Fixed\_Fee - Number\_Of\_Installments - Order\_Number - Consumer\_Name - Consumer\_Email - Transfer\_Amount - Finance\_Date - Card\_Type - Card\_Brand ### Shopper Outstanding Report [​](https://developers.splitit.com/api/reports/available-report-columns/\#shopper-outstanding-report "Direct link to Shopper Outstanding Report") - Report\_Date - Business\_Unit - Merchant - Installment\_Plan\_Number - Total\_Plan\_Amount - Order\_Number - Plan\_Activation\_Date - Currency - Number\_Of\_Installments - Status - Paid\_Amount - Outstanding\_Amount - Paid\_Installments - Outstanding\_Installments - Last\_Collection\_Date - Amount\_For\_Next\_0To30\_Days - Amount\_For\_Next\_31To60\_Days - Amount\_For\_Next\_61To90\_Days - Amount\_For\_Next\_91PlusDays - [Reconciliation Report](https://developers.splitit.com/api/reports/available-report-columns/#reconciliation-report) - [New Plans Report](https://developers.splitit.com/api/reports/available-report-columns/#new-plans-report) - [Debit Report](https://developers.splitit.com/api/reports/available-report-columns/#debit-report) - [Outstanding Amount Report](https://developers.splitit.com/api/reports/available-report-columns/#outstanding-amount-report) - [Funding Report (pending deprecation)](https://developers.splitit.com/api/reports/available-report-columns/#funding-report-pending-deprecation) - [Shopper Outstanding Report](https://developers.splitit.com/api/reports/available-report-columns/#shopper-outstanding-report)[Skip to main content](https://developers.splitit.com/api/v3/initiate-installment-plan/#__docusaurus_skipToContent_fallback) # Initiate Installment Plan ``` POST https://web-api-v3.sandbox.splitit.com/api/installmentplans/initiate ``` Initiate establishes an installment plan but doesn't finalize it, and is thus intended for use with Splitit premade checkout solutions such as Payment Forms or Flex Form. Initiate only requires SAQ-A certification. You can call it multiple times for the same installment plan, since each time a new API call is made, existing data will be updated and new values will be appended to the existing plan. Note that for funded plans, a customer's `BillingAddress` object must be filled out. ## Request [​](https://developers.splitit.com/api/v3/initiate-installment-plan/\#request "Direct link to Request") ### Header Parameters **X-Splitit-TestMode**string **X-Splitit-IdempotencyKey**string - application/json ### Body **AutoCapture** booleanrequired Indicates whether to capture the first installment automatically when creating the plan, or to wait for explicit indication to do the first capture (the default is true) **Attempt3dSecure** boolean Indicates whether to run a 3D secure verification (default is false) **Shopper** object **FullName** string **Email** string **PhoneNumber** string **Culture** string **PlanData** object required **TotalAmount** decimal The total order amount **Currency** stringrequired **NumberOfInstallments** int32 When populated will be used to display as default in Payment Form **TerminalId** stringrequired The merchant terminal identifier **PurchaseMethod** string **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\] How purchase was made (default is `ECommerce`) **RefOrderNumber** string Reference order number for merchant's use **ExtendedParams** object Additional data that can be added as key/value pair parameters by merchant (and later can be retrieved by GET) **property name\*** string **FirstInstallmentAmount** decimal **FirstInstallmentDate** date-time **BillingAddress** object **AddressLine1** string **AddressLine2** string **City** string **Country** string ISO 3166-3 code **State** string ISO 3166-2 code **Zip** string **RedirectUrls** object Used for 3DS redirection back to success or failure page **Succeeded** string **Failed** string **Cancel** string **UxSettings** object **DisplayedInstallmentOptions** int32\[\] **EventsEndpoints** object **CreateSucceeded** string ## Responses [​](https://developers.splitit.com/api/v3/initiate-installment-plan/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-503 - 400-505 - 400-511 - 400-524 - 400-526 - 400-528 - 400-529 - 400-532 - 400-550 - 400-551 - 400-554 - 400-566 - 400-572 - 400-575 - 400-595 - 400-596 - 400-599 - 400-806 Success - application/json - Schema - Example (from schema) **Schema** **InstallmentPlanNumber** string **RefOrderNumber** string **PurchaseMethod** string **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\] How purchase was made (default is `ECommerce`) **Status** stringrequired **Possible values:** \[ `Initialized`, `PendingCapture`, `Active`, `Cleared`, `Canceled`\] **Currency** string **Amount** decimal **ExtendedParams** object **property name\*** string **Shopper** object **FullName** string **Email** stringrequired **PhoneNumber** string **Culture** string **BillingAddress** object **AddressLine** string **AddressLine2** string **City** string **Country** string ISO 3166 Country name OR 2-character code OR 3-character code **State** string ISO 3166-2 State **Zip** string **CheckoutUrl** string ```codeBlockLines_e6Vv { "InstallmentPlanNumber": "string", "RefOrderNumber": "string", "PurchaseMethod": "InStore", "Status": "Initialized", "Currency": "string", "Amount": 0, "ExtendedParams": {}, "Shopper": { "FullName": "string", "Email": "string", "PhoneNumber": "string", "Culture": "string" }, "BillingAddress": { "AddressLine": "string", "AddressLine2": "string", "City": "string", "Country": "string", "State": "string", "Zip": "string" }, "CheckoutUrl": "string" } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInstallmentPlanStatus: Please close this window. Then click 'Splitit Payment' to create your payment plan (you haven't been charged yet). - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidNumberOfInstallments: The number of installments is not available at this store. Please check available options and try again. Thank you! - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidAmount: Invalid amount sent, such as below your minimum amount or above your maximum amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidEmailFormat: Invalid email. Please check that the email address is entered in the correct format. (For example: [name@mail.com](mailto:name@mail.com)) - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidZIPCode: The ZIP code must include at least 3 characters. Please check and try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCIssueCountryNotSupportedByTerminal: We are sorry, but we currently do not accept cards issued by this country. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CurrencyNotSupported: We are sorry, but we currently do not accept this currency. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CountrySubdivisionNotSupported: Sorry, but Splitit is currently not available in your state. Please contact Splitit's customer service desk for help - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CultureNameNotValid: Culture (language used in interfaces and communications) not valid. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CultureNotSupported: Culture (language used in interfaces and communications) not supported. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` UnknownZipCode: The ZIP code you entered is not valid. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` AddressDataIsMissingOrPartiallyInitiated: Please enter the cardholder's complete address. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidStateCode: We were unable to find this state code. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CurrencyMustBeDefinedOnTransaction: Please select the currency you wish to use. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` PhoneIsMissing: Please enter your phone number. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidPhoneFormat: Please enter your phone number in this format: +1-321-555-1234. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` TerminalApiKeyMissing: Terminal ID not found. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/initiate' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ --data-raw '{ "AutoCapture": true, "Attempt3DSecure": false, "PlanData": { "TotalAmount": 50.25, "Currency": "USD", "NumberOfInstallments": 3, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder123", "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "FirstInstallmentAmount": null, "ExtendedParams": { "AnyParameterKey1": "AnyParameterVal1", "AnyParameterKey2": "AnyParameterVal2" } }, "Shopper": { "FullName": "John Doe", "Email": "John.Doe@email.com", "PhoneNumber": "+1-972-111-1111", "Culture": "en-US" }, "BillingAddress": { "AddressLine1": "street name and number", "AddressLine2": "", "City": "NYC", "Country": "USA", "State": "NY", "Zip": "12345" }, "RedirectUrls": { "Succeeded": "https://www.success.com", "Failed": "https://www.fail.com", "Canceled": "https://www.cancel.com" } }' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters Show optional parameters X-Splitit-TestMode — header X-Splitit-IdempotencyKey — header Body ``` { "AutoCapture": true, "Attempt3DSecure": false, "PlanData": { "TotalAmount": 50.25, "Currency": "USD", "NumberOfInstallments": 3, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder123", "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "FirstInstallmentAmount": null, "ExtendedParams": { "AnyParameterKey1": "AnyParameterVal1", "AnyParameterKey2": "AnyParameterVal2" } }, "Shopper": { "FullName": "John Doe", "Email": "John.Doe@email.com", "PhoneNumber": "+1-972-111-1111", "Culture": "en-US" }, "BillingAddress": { "AddressLine1": "street name and number", "AddressLine2": "", "City": "NYC", "Country": "USA", "State": "NY", "Zip": "12345" }, "RedirectUrls": { "Succeeded": "https://www.success.com", "Failed": "https://www.fail.com", "Canceled": "https://www.cancel.com" } } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/using-keys/encrypting-reports/#__docusaurus_skipToContent_fallback) On this page For security reasons, your organization may require you to download your reports from Splitit in a PGP-encrypted format. In order to accomplish this, you will need to provide Splitit with a public key that it can use to encrypt the reports and make them available for download. You can then decrypt the reports on your system with your matching private key. Things to know: - It is recommended that you rotate your key(s) periodically, i.e. every three to six months. - Splitit uses the most recent (non-expired) public key on your account to encrypt your reports (make sure to not have duplicates or empty expiration dates) - The reports are signed using Splitit's private key for your merchant - For any debugging and issues, please preserve the response header _x-splitit-traceid_ ## Instructions [​](https://developers.splitit.com/api/using-keys/encrypting-reports/\#instructions "Direct link to Instructions") ### Authentication [​](https://developers.splitit.com/api/using-keys/encrypting-reports/\#authentication "Direct link to Authentication") 1. Begin by authenticating to the Splitit ID server, using the instructions [here](https://developers.splitit.com/api/keys/get-splitit-token). You'll receive a token in the response. ### Provide a Public Key [​](https://developers.splitit.com/api/using-keys/encrypting-reports/\#provide-a-public-key "Direct link to Provide a Public Key") 2. Add the token from step 1 in your header, then call [Rotate Public Key](https://developers.splitit.com/api/keys/get-splitit-token), and provide a PGP public key that you have generated on your system. The body to send is as follows: ```codeBlockLines_e6Vv { "OwnerCode": "string", // provided by Splitit support "Usage": [\ "Reports"\ ], "Type": "Pgp", "PublicKey": "{a PGP key you generated}", "ExpirationUtc": "2024-07-06T15:46:26.409Z" // When you'd like your key to expire (if you don't set this, a default value will be set by Splitit) } ``` 3. You should now be able to download encrypted and signed reports. - [Instructions](https://developers.splitit.com/api/using-keys/encrypting-reports/#instructions) - [Authentication](https://developers.splitit.com/api/using-keys/encrypting-reports/#authentication) - [Provide a Public Key](https://developers.splitit.com/api/using-keys/encrypting-reports/#provide-a-public-key)[Skip to main content](https://developers.splitit.com/category/shopper-portal/#__docusaurus_skipToContent_fallback) [**📄️Shopper Portal Guide** \\ Login Options](https://developers.splitit.com/merchant-portal/shopper-portal-guide)[Skip to main content](https://developers.splitit.com/category/reports-and-logs/#__docusaurus_skipToContent_fallback) [**📄️Usage** \\ The Reports and Logs section allows you to generate and view various types of reports related to your merchant account. You can set the report type, date range, columns to include, and merchant entity.](https://developers.splitit.com/merchant-hub/reports-and-logs)[**📄️Reports Examples** \\ By Format](https://developers.splitit.com/merchant-portal/reports/reports-examples)[**📄️Report Field Definitions** \\ Sort, filter and search for report fields in the table below (click on header to sort and hamburger menu on right side of header for filters). You can also reorder columns by dragging and expand columns with \|.](https://developers.splitit.com/merchant-hub/reports-fields)[**🗃️Settlement Reports** \\ 2 items](https://developers.splitit.com/category/settlement-reports)[Skip to main content](https://developers.splitit.com/api/keys/list-all-keys/#__docusaurus_skipToContent_fallback) # List All Keys ``` GET https://key-exchange.sandbox.splitit.com/api/v1/key/list/:owner ``` This endpoint is accessed with your owner name, and returns a list of keys along with non-sensitive information. ## Request [​](https://developers.splitit.com/api/keys/list-all-keys/\#request "Direct link to Request") ### Path Parameters **owner**stringrequired Given to you by Splitit support (identical to _OwnerCode_ in other calls) ### Query Parameters **includeExpired**boolean ## Responses [​](https://developers.splitit.com/api/keys/list-all-keys/\#responses "Direct link to Responses") - 200 - 400 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Items** object\[\] Array \[\ \ **OwnerCode** string\ \ Given to you by Splitit support, same as _Owner_ in other calls\ \ **PublicKey** string\ \ **UniqueId** string\ \ **RelatedClientId** string\ \ **Usage** string\[\]\ \ **Possible values:** \[ `Unknown`, `Reports`, `Authentication`, `MessageLevelEncryption`, `CredentialsDownload`, `ResponseSignature`\]\ \ **Type** stringrequired\ \ **Possible values:** \[ `RSA`, `PGP`\]\ \ **ExpirationUtc** date-time\ \ **HasPrivateKey** booleanrequired\ \ \] ```codeBlockLines_e6Vv { "Items": [\ {\ "OwnerCode": "string",\ "PublicKey": "string",\ "UniqueId": "string",\ "RelatedClientId": "string",\ "Usage": [\ "Unknown"\ ],\ "Type": "RSA",\ "ExpirationUtc": "2024-06-06T16:41:09.077Z",\ "HasPrivateKey": true\ }\ ] } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://key-exchange.sandbox.splitit.com/api/v1/key/list/:owner' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://key-exchange.sandbox.splitit.com Auth Bearer Token Parameters owner — pathrequired Show optional parameters includeExpired — query \-\-\-truefalse Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/chargebacks/accept-a-chargeback/#__docusaurus_skipToContent_fallback) # Accept a Chargeback ``` PUT https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/accept ``` For an open dispute, you can choose not to fight back but rather to accept the chargeback. After this call is performed, you will not be able to add/remove evidence or comments. ## Request [​](https://developers.splitit.com/api/chargebacks/accept-a-chargeback/\#request "Direct link to Request") ### Path Parameters **id**stringrequired - application/json ### Body **required** **Accept** booleanrequired ## Responses [​](https://developers.splitit.com/api/chargebacks/accept-a-chargeback/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Chargeback** object required **Id** stringrequired **DisputeCreatedDate** date-timerequired **DueDate** date-timerequired **InstallmentPlanNumber** stringrequired **InstallmentNumber** int64required **PlanStatus** stringrequired **TransactionId** stringrequired **MerchantName** stringrequired **TotalPlanAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **DisputeAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **Status** DisputeStatus (string)required **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] **PlanActivatedDate** date-time **ReasonCode** stringrequired **Evidences** object\[\] required Array \[\ \ **EvidenceId** stringrequired\ \ **UploadedAt** date-timerequired\ \ **FileName** stringrequired\ \ **FileType** stringrequired\ \ \] **Comments** object\[\] required Array \[\ \ **CommentId** stringrequired\ \ **Text** stringrequired\ \ **CommentAt** date-timerequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Chargeback": { "Id": "string", "DisputeCreatedDate": "2024-06-06T16:41:09.389Z", "DueDate": "2024-06-06T16:41:09.389Z", "InstallmentPlanNumber": "string", "InstallmentNumber": 0, "PlanStatus": "string", "TransactionId": "string", "MerchantName": "string", "TotalPlanAmount": { "Amount": 0, "CurrencyCode": "string" }, "DisputeAmount": { "Amount": 0, "CurrencyCode": "string" }, "Status": "Open", "PlanActivatedDate": "2024-06-06T16:41:09.389Z", "ReasonCode": "string", "Evidences": [\ {\ "EvidenceId": "string",\ "UploadedAt": "2024-06-06T16:41:09.389Z",\ "FileName": "string",\ "FileType": "string"\ }\ ], "Comments": [\ {\ "CommentId": "string",\ "Text": "string",\ "CommentAt": "2024-06-06T16:41:09.389Z"\ }\ ] } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X PUT 'https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/accept' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "Accept": true }' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Body required ``` { "Accept": true } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/keys/rotate-public-key/#__docusaurus_skipToContent_fallback) # Rotate Public Key ``` POST https://key-exchange.sandbox.splitit.com/api/v1/key ``` Use this endpoint to change your public key that is stored by Splitit (you should never share a private key with Splitit). In this scenario, Splitit uses your public key to encrypt data sent to you, to verify that communication that came from you is actually from you. - Used to PGP-encrypt outgoing traffic from Splitit, such as reports and credentials - Used by Splitit to authenticate your signatures (RSA key-pair authentication) ## Request [​](https://developers.splitit.com/api/keys/rotate-public-key/\#request "Direct link to Request") - application/json ### Body **required** **OwnerCode** stringrequired Given to you by Splitit support, same as _Owner_ in other calls **Usage** string\[\]required **Possible values:** \[ `Unknown`, `Reports`, `Authentication`, `MessageLevelEncryption`, `CredentialsDownload`, `ResponseSignature`\] **Type** stringrequired **Possible values:** \[ `RSA`, `PGP`\] **PublicKey** stringrequired E.g., "sU9tOVHOcM6jPOjjWZpXZs4V0cmc01BZfChF5afrj71Dz2COn2" **ExpirationUtc** date-timerequired E.g., _2024-07-06T15:46:26.409Z_ **RelatedClientId** string ## Responses [​](https://developers.splitit.com/api/keys/rotate-public-key/\#responses "Direct link to Responses") - 200 - 400 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **UniqueId** string ```codeBlockLines_e6Vv { "UniqueId": "string" } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://key-exchange.sandbox.splitit.com/api/v1/key' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "OwnerCode": "string", "Usage": [\ "Reports"\ ], "Type": "PGP", "PublicKey": "MEgCQQCo9+BpMRYQ/dL3DS2CyJxRF+j6ctbT3/Qp84+KeFhnii7NT7fELilKUSnx S30WAvQCCo2yU1orfgqr41mM70MBAgMBAAE=", "ExpirationUtc": "2024-07-06T15:46:26.409Z" }' ``` Request Collapse all Base URL Edit https://key-exchange.sandbox.splitit.com Auth Bearer Token Body required ``` { "OwnerCode": "string", "Usage": [\ "Reports"\ ], "Type": "PGP", "PublicKey": "MEgCQQCo9+BpMRYQ/dL3DS2CyJxRF+j6ctbT3/Qp84+KeFhnii7NT7fELilKUSnx S30WAvQCCo2yU1orfgqr41mM70MBAgMBAAE=", "ExpirationUtc": "2024-07-06T15:46:26.409Z" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/hosted-forms/#__docusaurus_skipToContent_fallback) [**📄️Hosted Form Flow Diagram** \\ hosted form flow diagram](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-diagram)[**📄️Hosted Form IFrame** \\ The Hosted Form IFrame allows you to call a Splitit payment form as an IFrame—using your own button or other desired JavaScript element. Note: Your merchant account should be set to use Payment Form 3.7 if you wish to use the Hosted Form IFrame.](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-iframe)[**📄️Hosted Form Modal** \\ Splitit's Hosted Form Modal is triggered by a customizable Splitit Pay Button, which you add directly into your checkout flow. Once triggered, the Hosted Form Modal allows a user to enter credit card information directly and securely, and after they are done, it yields control back to the checkout page, sending either a success or error message.](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal)[**📄️Hosted Form Redirect** \\ Splitit's Hosted Form Redirect features a full redirect from your site to Splitit's. To use it, you fetch a URL from the Splitit API then send your customer there to enter credit card data. After the customer is done checking out, they are sent back to URLs of your choice, which you specify in the initial API call (success, cancel, or failure).](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect)[Skip to main content](https://developers.splitit.com/api/chargebacks/add-comment/#__docusaurus_skipToContent_fallback) # Add Comment ``` POST https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/add-comment ``` You can also add a textual comment to your dispute up until its due date (after the due date, an appropriate error will be returned). A successful response will include the single comment that was submitted (not all comments). ## Request [​](https://developers.splitit.com/api/chargebacks/add-comment/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Splitit dispute id - application/json ### Body **required** **Text** stringrequired comment itself **CreatedBy** stringrequired name of comment creator **CommentId** stringrequired merchant defined id ## Responses [​](https://developers.splitit.com/api/chargebacks/add-comment/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Comment** object required **CommentId** stringrequired **Text** stringrequired **CommentAt** date-timerequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Comment": { "CommentId": "string", "Text": "string", "CommentAt": "2024-06-06T16:41:09.400Z" } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://chargebacks.sandbox.splitit.com/api/chargebacks/:id/add-comment' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "Text": "string", "CreatedBy": "string", "CommentId": "string" }' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Body required ``` { "Text": "string", "CreatedBy": "string", "CommentId": "string" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/v3/update-order/#__docusaurus_skipToContent_fallback) # Update Plan by Number ``` PUT https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber/updateorder ``` Locate a plan by installment number then carry out post-authorization activities related to the plan, such as updating the order number, updating the tracking number, updating shipping status, or updating the plan amount (if it hasn't been captured yet). You can also use this endpoint to capture the first installment from a plan that has only been authorized but not yet captured. ## Request [​](https://developers.splitit.com/api/v3/update-order/\#request "Direct link to Request") ### Path Parameters **installmentPlanNumber**stringrequired ### Header Parameters **X-Splitit-IdempotencyKey**string - application/json ### Body **TrackingNumber** string **RefOrderNumber** string A merchant-specific identifier value provided at creation of the plan by the merchant **ShippingStatus** string **Possible values:** \[ `Pending`, `Shipped`, `Delivered`\] **Capture** boolean Set this as `true` to capture the first payment for a plan that has been authorized but not captured. **NewAmount** number Use to update plan amount **if plan amount hasn't been captured yet** (i.e. _AutoCapture_ was set to _false_ in the [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) or [Create](https://developers.splitit.com/api/v3/installment-plan) operation). In addition, 1. amount must be more than original amount 2. first email to customer will be sent upon capture ## Responses [​](https://developers.splitit.com/api/v3/update-order/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-503 - 400-561 - 400-578 - 400-599 - 400-640 - 400-1041 - 400-5911 Success - application/json - Schema - Example (from schema) **Schema** **RefOrderNumber** string **InstallmentPlanNumber** string **Status** stringrequired **Possible values:** \[ `Initialized`, `PendingCapture`, `Active`, `Cleared`, `Canceled`\] **ShippingStatus** stringrequired **Possible values:** \[ `Pending`, `Shipped`, `Delivered`\] ```codeBlockLines_e6Vv { "RefOrderNumber": "string", "InstallmentPlanNumber": "string", "Status": "Initialized", "ShippingStatus": "Pending" } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInstallmentPlanStatus: Status does not allow updating order (example: request capture for plan that was already captured). - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` The input parameters or parameter combination for the updated plan is not supported. (New amount is lower than original amount, can only be higher) - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidPlanStrategy: We are sorry for the inconvenience, but this plan is not available. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyMerchantDataProblem: Sorry, but there has been a processing error with this merchant. Please contact our support for assistance. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` IdempotencyHashMismatchError: Same Idempotency key with different payload identified. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInternalUrlSentToOms: Plan is not in the correct state to process this request. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X PUT 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber/updateorder' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "RefOrderNumber": "MerchantOrder123", "TrackingNumber": "abc46265", "ShippingStatus": "Shipped", "Capture": true, "NewAmount": 26.59 }' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters installmentPlanNumber — pathrequired Show optional parameters X-Splitit-IdempotencyKey — header Body ``` { "RefOrderNumber": "MerchantOrder123", "TrackingNumber": "abc46265", "ShippingStatus": "Shipped", "Capture": true, "NewAmount": 26.59 } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/merchant-hub/getting-started/#__docusaurus_skipToContent_fallback) You should have obtained your username and temporary password via email from Splitit in order to access the Hub. If this is the first time you are logging in, you will be asked to reset your password. The system will then log you into the Hub. If you have not yet received this information, please reach out to [support@splitit.com](mailto:support@splitit.com). - [Go to Merchant Hub (Sandbox)](https://hub.sandbox.splitit.com/) - [Go to Merchant Hub (Production)](https://hub.splitit.com/)[Skip to main content](https://developers.splitit.com/api/keys/delete-a-key/#__docusaurus_skipToContent_fallback) # Delete a Key ``` DELETE https://key-exchange.sandbox.splitit.com/api/v1/key/:id ``` Using this endpoint sets the key expiration to the current date and time, effectively disabling the key for further use. Note that this call does not return a 200 message but if you [fetch](https://developers.splitit.com/api/keys/fetch-a-key) your key again, you will see the new expiration date. ## Request [​](https://developers.splitit.com/api/keys/delete-a-key/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Note that this field is returned as _UniqueID_ from some calls. ## Responses [​](https://developers.splitit.com/api/keys/delete-a-key/\#responses "Direct link to Responses") - 400 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X DELETE 'https://key-exchange.sandbox.splitit.com/api/v1/key/:id' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://key-exchange.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/#__docusaurus_skipToContent_fallback) On this page # Hosted Form Modal Splitit's Hosted Form Modal is triggered by a customizable Splitit Pay Button, which you add directly into your checkout flow. Once triggered, the Hosted Form Modal allows a user to enter credit card information directly and securely, and after they are done, it yields control back to the checkout page, sending either a success or error message. From a dev standpoint, the process works as follows: you pass user data (address, desired installment plan, etc.) from your front-end checkout form to the Splitit API via your back end. The Splitit API returns a URL complete with authorization token that you then send back to your front-end JavaScript to call the Hosted Form Modal, which is pre-populated with the user data that you sent to it in your API call. Hosted Form Modal Demo [iframe](/hosted-form-modal.html) ### Backend [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#backend "Direct link to Backend") To get the URL that you'll need to call the Hosted Form Modal, pass your user's data from your front-end form to the Splitit API through your server. Do this from the page with your Pay Button, either upon page load (if your user data came from an earlier form), or via Ajax after the Pay Button page is loaded (see below for adding the Pay Button). On the back end, call [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan), the operation that returns the URL for the Hosted Form Modal. The easiest way to call the Splitit APIs is with one of the [Splitit SDKs](https://developers.splitit.com/api/sdks). #### Bearer Token Details [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#bearer-token-details "Direct link to Bearer Token Details") Fetch a bearer token and attach it as header using the [instructions under "Authentication."](https://developers.splitit.com/api/v3/introduction) #### Initiate Details [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#initiate-details "Direct link to Initiate Details") Call [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) using the data modeled below in our sample, but adding your own `TerminalId` from your merchant portal: ```codeBlockLines_e6Vv { "AutoCapture": false, "Attempt3DSecure": false, "TermsAndConditionsAccepted": true, "PlanData": { "TotalAmount": 50.25, "Currency": "USD", "NumberOfInstallments": 3, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder12", "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "FirstInstallmentAmount": null, "ExtendedParams": { "AnyParameterKey1": "AnyParameterVal1", "AnyParameterKey2": "AnyParameterVal2" } }, "Shopper": { "FullName": "John Doe", "Email": "John.Doe@email.com", "PhoneNumber": "+1-972-111-1111", "Culture": "en-US" }, "BillingAddress": { "AddressLine1": "123 Stanton", "AddressLine2": "", "City": "NYC", "Country": "USA", "State": "NY", "Zip": "12345" }, "PaymentMethod": { "Type": "Card", "Card": { "CardHolderFullName": "John Doe", "CardNumber": "4111111111111111", "CardExpYear": 2025, "CardExpMonth": 10, "CardCvv": "123" } }, } ``` You'll receive a `CheckoutUrl` in the body of the return. ### Front End [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#front-end "Direct link to Front End") Set up your front end by styling the Pay Button and calling the Hosted Form Modal URL. #### HTML [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#html "Direct link to HTML") The Splitit Pay Button will show up automatically in the div with the id specified in your JavaScript (see below). Here we will use the id `splitit-payment-container`: ```codeBlockLines_e6Vv
``` #### JavaScript [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#javascript "Direct link to JavaScript") Add the following script to call in the payment button and its associated code: ```codeBlockLines_e6Vv ``` Then add a JavaScript for configuration and settings (here is also where you put the URL returned from the back end): ```codeBlockLines_e6Vv ``` Style the Pay Button using the CSS in the first three sections (which configure the frame, the button, the "powered by statement" underneath, and the container for the two). Add your returned URL to `checkoutUrl`. Finally, at the bottom, specify actions for success and error to be executed on the calling page upon return. A common thing to do in these functions is to hide the Pay Button on your checkout page (you could use JQuery `.hide()` for example). Note that in the "success" function here, an object from the Splitit checkout process is returned to your console so you can inspect it. ### Verify [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/\#verify "Direct link to Verify") Once your customer has checked out through the form, make sure to verify the transaction by calling [VerifyAuthorization](https://developers.splitit.com/api/v3/verify-authorization) and providing the installment plan number. - [Backend](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/#backend) - [Front End](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/#front-end) - [Verify](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-modal/#verify)[Skip to main content](https://developers.splitit.com/api/reports/request-report-data/#__docusaurus_skipToContent_fallback) # Request Report Data ``` POST https://reportingsystem-api.sandbox.splitit.com/api/v1/reports/generate-report ``` To fetch report data, specify your desired report type, time frame (separated by "from and "to"), format and columns according to the specifications below. ## Request [​](https://developers.splitit.com/api/reports/request-report-data/\#request "Direct link to Request") - application/json ### Body **required** **ReportCode** stringrequired **Possible values:** \[ `ReconciliationReport`, `NewPlans`, `DebitReport`, `OutstandingAmounts`, `FundingReport`, `ShopperOutstanding`\] **From** date-time UTC format, e.g. "2023-04-29T14:33:44.613Z" **To** date-time UTC format, e.g. "2023-04-29T14:33:44.613Z" **Format** ReportFormat2 (string) **Possible values:** \[ `CSV`, `JSON`, `XLSX`\] **SelectedColumns** string\[\] Choose your columns from the available fields. Refer to [Report Field Definitions](https://developers.splitit.com/merchant-portal/reports/reports-fields) for more info on each field. Notes: - When the `SelectedColumns` tag is empty (\[\]), the system will return default columns - If a column's values don't exist, then the system skips it and doesn't export it - The order of columns in the exported report depends on the columns' order in the JSON body - Exported results are not sorted ## Responses [​](https://developers.splitit.com/api/reports/request-report-data/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **DelliveredTo** DeliveryMethod (integer) **Possible values:** \[ `0`, `1`\] **FileUrl** string ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "DelliveredTo": 0, "FileUrl": "string" } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://reportingsystem-api.sandbox.splitit.com/api/v1/reports/generate-report' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "ReportCode": "ReconciliationReport", "From": "2023-04-29T14:33:44.613Z", "To": "2023-04-30T14:33:44.613Z", "Format": "CSV", "SelectedColumns": [\ "Merchant_Name",\ "Plan_Number"\ ] }' ``` Request Collapse all Base URL Edit https://reportingsystem-api.sandbox.splitit.com Auth Bearer Token Body required ``` { "ReportCode": "ReconciliationReport", "From": "2023-04-29T14:33:44.613Z", "To": "2023-04-30T14:33:44.613Z", "Format": "CSV", "SelectedColumns": [\ "Merchant_Name",\ "Plan_Number"\ ] } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/v3/installment-plan-search/#__docusaurus_skipToContent_fallback) # Fetch Plan(s) by Alternate Field ``` GET https://web-api-v3.sandbox.splitit.com/api/installmentplans/search ``` Retrieves a plan by `RefOrderNumber` or `ExtendedParams`. Note that `RefOrderNumber` or `ExtendedParams` were optionally specified by you upon plan creation. ## Request [​](https://developers.splitit.com/api/v3/installment-plan-search/\#request "Direct link to Request") ### Query Parameters **refOrderNumber**string **extendedParams**object Specify the key and value you used when establishing the plan. For example `ExtendedParams["MerchantInternalID"]="5345532"` ### Header Parameters **X-Splitit-IdempotencyKey**string ## Responses [​](https://developers.splitit.com/api/v3/installment-plan-search/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-599 Success - application/json - Schema - Example (from schema) **Schema** **PlanList** object\[\] Array \[\ \ **InstallmentPlanNumber** string\ \ **DateCreated** date-timerequired\ \ **RefOrderNumber** string\ \ **PurchaseMethod** string\ \ **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\]\ \ How purchase was made (default is `ECommerce`)\ \ **Status** stringrequired\ \ **Possible values:** \[ `Initialized`, `PendingCapture`, `Active`, `Cleared`, `Canceled`\]\ \ **Currency** string\ \ **OriginalAmount** decimal\ \ **Amount** decimal\ \ **Authorization**\ object\ \ **Status** stringrequired\ \ **Possible values:** \[ `NA`, `Succeeded`, `Pending3DS`, `Failed`\]\ \ **Date** date-time\ \ **SplititErrorResultCode** string\ \ **GatewayTransactionID** string\ \ **GatewayResultCode** string\ \ **GatewayResultMessage** string\ \ **ThreeDSRedirect**\ object\ \ **Url** string\ \ **Verb** string\ \ **Params**\ object\ \ **property name\*** string\ \ **CAVV** string\ \ **ECI** string\ \ **Shopper**\ object\ \ **FullName** string\ \ **Email** stringrequired\ \ **PhoneNumber** string\ \ **Culture** string\ \ **BillingAddress**\ object\ \ **AddressLine** string\ \ **AddressLine2** string\ \ **City** string\ \ **Country** string\ \ ISO 3166 Country name OR 2-character code OR 3-character code\ \ **State** string\ \ ISO 3166-2 State\ \ **Zip** string\ \ **PaymentMethod**\ object\ \ **Type**\ \ **Possible values:** \[ `Card`, `SplititToken`\]\ \ **Card**\ object\ \ required\ \ **CardHolderFullName** string\ \ **CardNumber** stringrequired\ \ **CardExpYear** stringrequired\ \ **CardExpMonth** stringrequired\ \ **CardCvv** string\ \ **CardBrand** string\ \ **Possible values:** \[ `Mastercard`, `Visa`, `AmericanExpress`, `Maestro`, `JCB`, `CUP`, `UPI`, `Discover`, `Other`\]\ \ **CardType** string\ \ **Possible values:** \[ `Credit`, `Debit`, `Charge`, `Other`, `Prepaid`, `VisaDeferredDebit`, `NetworkOnly`\]\ \ **Token** string\ \ **ExtendedParams**\ object\ \ **property name\*** string\ \ **Installments**\ object\[\]\ \ Array \[\ \ **InstallmentNumber** int32required\ \ **Amount** decimalrequired\ \ **ProcessDateTime** date-time\ \ **Status** stringrequired\ \ **Possible values:** \[ `Pending`, `Processed`, `Canceled`\]\ \ \]\ \ **Refunds**\ object\[\]\ \ Array \[\ \ **RefundId** string\ \ **SubmitDate** date-timerequired\ \ **TotalAmount** decimalrequired\ \ **Status** stringrequired\ \ **Possible values:** \[ `Pending`, `Succeeded`, `Failed`\]\ \ **NonCreditRefundAmount** decimalrequired\ \ **CreditRefundAmount** decimalrequired\ \ \]\ \ **Links**\ object\ \ **Checkout** string\ \ **LearnMore** string\ \ **TermsConditions** string\ \ **PrivacyPolicy** string\ \ \] ```codeBlockLines_e6Vv { "PlanList": [\ {\ "InstallmentPlanNumber": "string",\ "DateCreated": "2024-07-24T18:00:33.291Z",\ "RefOrderNumber": "string",\ "PurchaseMethod": "InStore",\ "Status": "Initialized",\ "Currency": "string",\ "OriginalAmount": 0,\ "Amount": 0,\ "Authorization": {\ "Status": "NA",\ "Date": "2024-07-24T18:00:33.291Z",\ "SplititErrorResultCode": "string",\ "GatewayTransactionID": "string",\ "GatewayResultCode": "string",\ "GatewayResultMessage": "string",\ "ThreeDSRedirect": {\ "Url": "string",\ "Verb": "string",\ "Params": {}\ },\ "CAVV": "string",\ "ECI": "string"\ },\ "Shopper": {\ "FullName": "string",\ "Email": "string",\ "PhoneNumber": "string",\ "Culture": "string"\ },\ "BillingAddress": {\ "AddressLine": "string",\ "AddressLine2": "string",\ "City": "string",\ "Country": "string",\ "State": "string",\ "Zip": "string"\ },\ "PaymentMethod": {\ "Card": {\ "CardHolderFullName": "string",\ "CardNumber": "string",\ "CardExpYear": "string",\ "CardExpMonth": "string",\ "CardCvv": "string",\ "CardBrand": "Mastercard",\ "CardType": "Credit"\ },\ "Token": "string"\ },\ "ExtendedParams": {},\ "Installments": [\ {\ "InstallmentNumber": 0,\ "Amount": 0,\ "ProcessDateTime": "2024-07-24T18:00:33.292Z",\ "Status": "Pending"\ }\ ],\ "Refunds": [\ {\ "RefundId": "string",\ "SubmitDate": "2024-07-24T18:00:33.292Z",\ "TotalAmount": 0,\ "Status": "Pending",\ "NonCreditRefundAmount": 0,\ "CreditRefundAmount": 0\ }\ ],\ "Links": {\ "Checkout": "string",\ "LearnMore": "string",\ "TermsConditions": "string",\ "PrivacyPolicy": "string"\ }\ }\ ] } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/search' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters Show optional parameters refOrderNumber — query extendedParams — query X-Splitit-IdempotencyKey — header Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/webhooks/#__docusaurus_skipToContent_fallback) [**📄️Issuer Webhooks** \\ Splitit provides a means for issuers to receive real-time data through webhooks. Issuers can register endpoints for any of the following events:](https://developers.splitit.com/operational/webhooks/Issuer-webhooks)[**📄️Merchant Webhooks** \\ Each installment plan event has a corresponding webhook event provided by Splitit. When you subscribe to an event, an asynchronous call is made to your predefined endpoint from the Splitit servers. This call will be fired to your endpoint every hour, for 24 hours, until you reply with HTTP code 200.](https://developers.splitit.com/operational/webhooks/merchant-webhooks)[Skip to main content](https://developers.splitit.com/api/v3/authenticate/#__docusaurus_skipToContent_fallback) # Get Splitit Token ``` POST https://id.sandbox.splitit.com/connect/token ``` To get a token, you will need your _client\_id_ and _client\_secret_ from your [Merchant Portal](https://merchant.sandbox.splitit.com/). In your Merchant Portal, go to **Credentials** on the left-hand side. Find your **Username** (which is _client\_id_) and generate or use an existing **Active Password** (which is _client\_secret_). You can authenticate directly in the _Request_ box on this page (at right). For _grant\_type_, enter _client\_credentials_, for _scope_ type enter _api.v1 api.v3_, then enter your _client\_id_ and _client\_secret_. Scroll down and press _SEND API REQUEST_. In the response, copy your _access\_token_, which you can use to execute the other endpoints in this API reference. - Note that unlike the other endpoints, your authentication payload should use the format _application/x-www-form-urlencoded_. ## Request [​](https://developers.splitit.com/api/v3/authenticate/\#request "Direct link to Request") - application/x-www-form-urlencoded ### Body **required** **grant\_type** string i.e., client\_credentials **scope** string i.e. api.v1 api.v3 **client\_id** string e.g., APIUser000032201 **client\_secret** string e.g. sU9tOVHOcM6jPOjjWZpXZs4V0cmc01BZfChF5afrj71Dz2COn2 ## Responses [​](https://developers.splitit.com/api/v3/authenticate/\#responses "Direct link to Responses") - 200 Success - application/json - Schema - Example (from schema) **Schema** **access\_token** string The bearer token to add to your header **expires\_in** integer How long token will last **token\_type** string Type of token **scope** string The scope granted to your request ```codeBlockLines_e6Vv { "access_token": "string", "expires_in": 0, "token_type": "string", "scope": "string" } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://id.sandbox.splitit.com/connect/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Accept: application/json' ``` Request Collapse all Base URL Edit https://id.sandbox.splitit.com/connect Body required grant\_type scope client\_id client\_secret Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/checkout-solutions/#__docusaurus_skipToContent_fallback) [**🗃️Hosted Fields** \\ 2 items](https://developers.splitit.com/category/hosted-fields)[**🗃️Hosted Forms** \\ 4 items](https://developers.splitit.com/category/hosted-forms)[Skip to main content](https://developers.splitit.com/api/ams/partner-profiles-get-structure/#__docusaurus_skipToContent_fallback) # Structure for Add Merchant Partner Requests ``` GET https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/structure ``` Using your bearer token to authenticate, fetch the fields that you will need to complete an [Add Merchant Partner](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic) request. (Note that these fields have been previously agreed upon between you and Splitit.) In addition, note that the [response's](https://developers.splitit.com/api/ams/guide#2-view-the-required-format-for-your-add-requests) _RequestUrlEndpoint_ here includes the full URL (including _profileID_) that you will need to add new merchants using the [Add Merchant Partner](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic) endpoint. ## Request [​](https://developers.splitit.com/api/ams/partner-profiles-get-structure/\#request "Direct link to Request") ## Responses [​](https://developers.splitit.com/api/ams/partner-profiles-get-structure/\#responses "Direct link to Responses") - 200 - 404 - 500 Success **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **MetaData** object\[\] The fields in question. Array \[\ \ **Fields**\ object\[\]\ \ required\ \ Array \[\ \ **AccountFieldName** stringrequired\ \ **AccountFieldType** stringrequired\ \ **AllowedOptions** string\[\]required\ \ **IsMandatory** booleanrequired\ \ \]\ \ **Account** required\ \ **RequestUrlEndpoint** stringrequired\ \ **Description** stringrequired\ \ **Method** stringrequired\ \ **AuthorizationHeader** stringrequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "MetaData": [\ {\ "Fields": [\ {\ "AccountFieldName": "string",\ "AccountFieldType": "string",\ "AllowedOptions": [\ "string"\ ],\ "IsMandatory": true\ }\ ],\ "Account": {},\ "RequestUrlEndpoint": "string",\ "Description": "string",\ "Method": "string",\ "AuthorizationHeader": "string"\ }\ ] } ``` Not Found **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` Internal Server Error **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/structure' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://account-mgmt-system.sandbox.splitit.com Auth Bearer Token Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/direct-api/white-label-3ds/#__docusaurus_skipToContent_fallback) If you are using Splitit as a white-label solution for creating and completing installment plans, you may need to check out your customer with 3DS. The way to handle this is to redirect your customer to a URL that is returned in the 400-641 error response you receive when completing an installment plan with the [Create API](https://developers.splitit.com/api/v3/installment-plan). The URL is named `ClientRedirectUrl` and you can see it in the sample 400-641 error response below: ```codeBlockLines_e6Vv { "ThreeDSRedirect": { "Url": "https://documents.sandbox.splitit.com:443/IssuerMock?frictionless=False&finalize3DSecureResult=True", "Verb": "GET", "Params": { "md": "Mock MD value", "pareq": "Mock PaRequest value", "termUrl": "https://integration.sandbox.splitit.com/gateways/Proxy/Execute?publicToken=0IAOFG0OLUKSLU4URI5V&initiator=ApiV3&ipn=0IAOFG0OLUKSLU4URI5V" }, "ClientRedirectUrl": "https://3ds.sandbox.splitit.com/general?issuerRedirectUrl=https%3a%2f%2fdocuments.sandbox.splitit.com%3a443%2fIssuerMock%3ffrictionless%3dFalse%26finalize3DSecureResult%3dTrue&md=Mock+MD+value&paReq=Mock+PaRequest+value&termUrl=https%3a%2f%2fintegration.sandbox.splitit.com%2fgateways%2fProxy%2fExecute%3fpublicToken%3d0IAOFG0OLUKSLU4URI5V%26initiator%3dApiV3%26ipn%3d0IAOFG0OLUKSLU4URI5V&initiator=ApiV3&ipn=0IAOFG0OLUKSLU4URI5V" } } ```[Skip to main content](https://developers.splitit.com/back-office/alternative-timeframes-and-first/#__docusaurus_skipToContent_fallback) On this page The default setting for Splitit plans is multiple monthly installments. It is also common for shoppers to pay the first installment at checkout. There are however, other options for installment plans, most of which Splitit support can set for you. ## Biweekly [​](https://developers.splitit.com/back-office/alternative-timeframes-and-first/\#biweekly "Direct link to Biweekly") Your merchant account can be set by Splitit support to offer installment plans on a biweekly basis instead of a monthly basis. If you are using a form, your shoppers will see biweekly calculations when they go to sign up for a plan, instead of monthly calculations. You can verify that your account is set to biweekly by calling the [CheckEligibility](https://developers.splitit.com/api/v3/check-eligibility) endpoint and viewing the value under **InstallmentFrequency**. ## Deferred [​](https://developers.splitit.com/back-office/alternative-timeframes-and-first/\#deferred "Direct link to Deferred") You can delay the first installment payment for your shoppers by a specific number of days. Subsequent payments are calculated related to this first delayed payment (e.g., thirty days out from this payment, sixty days out from this payment, etc.). Splitit support will need to set this for you. ## Pay At Delivery [​](https://developers.splitit.com/back-office/alternative-timeframes-and-first/\#pay-at-delivery "Direct link to Pay At Delivery") Using API v3, you can have your shopper pay when the product is shipped by creating an installment plan with a single installment and setting _AutoCapture_ to false. Splitit will perform an authorization for the full amount of the plan. After your products have been delivered to your shopper, you will need to call one of the [UpdatePlan endpoints](https://developers.splitit.com/api/v3/update-order) with _ShippingStatus_ set to _Delivered_ and _Capture_ set to _true_. - [Biweekly](https://developers.splitit.com/back-office/alternative-timeframes-and-first/#biweekly) - [Deferred](https://developers.splitit.com/back-office/alternative-timeframes-and-first/#deferred) - [Pay At Delivery](https://developers.splitit.com/back-office/alternative-timeframes-and-first/#pay-at-delivery)[Skip to main content](https://developers.splitit.com/category/hosted-fields/#__docusaurus_skipToContent_fallback) [**📄️Hosted Fields** \\ Overview](https://developers.splitit.com/checkout-solutions/hosted-fields/)[**📄️Hosted Fields Flow Diagram**](https://developers.splitit.com/checkout-solutions/hosted-fields/hosted-fields-diagram)[Skip to main content](https://developers.splitit.com/category/settlement-reports/#__docusaurus_skipToContent_fallback) [**📄️Settlement Reports for Core Merchants** \\ Splitit's Settlement Report is the best way to reconcile your Splitit transactions. Core and Managed merchants will use the Settlement Report differently, and this guide is explicitly intended for Core merchants.](https://developers.splitit.com/merchant-portal/reports/settlement-reports-core)[**📄️Settlement Reports for Managed Merchants** \\ If you are a Managed merchant seeking a primary source for reconciling your bank statements with Splitit activity, it is recommended that you use Splitit's Settlement Report. It provides a detailed overview of settled transactions, offering insights into the timing and specifics of fund transfers. Note that Core and Managed merchants will use the Settlement Report differently, and this guide is explicitly intended for Managed merchants.](https://developers.splitit.com/merchant-portal/reports/settlement-reports-managed)[Skip to main content](https://developers.splitit.com/merchant-hub/merchants-management/#__docusaurus_skipToContent_fallback) On this page Access the **Merchants Management** section from the left-side menu to get/set your credentials, set your gateway info, customize your plans, manage your shopper emails, set webhooks related to your plans, and manage users on your account. ## Front Page [​](https://developers.splitit.com/merchant-hub/merchants-management/\#front-page "Direct link to Front Page") If you are a single merchant, you will see your General Details on the front page of this section (refer to General Details section below): If you have access to more than one merchant, you will see a list of merchants, and you can access a search that allows you to view and manage your merchants. ![general details](https://developers.splitit.com/assets/images/hub-all-merchants-1a138dec470131681ce815ba5c921213.png) - Each row includes Merchant Id, Name, Parent Entity, Country, Status, and Created At (time). You can filter merchants by All, Active and Inactive statuses, using the tabs at the top - Click on a merchant from the list to go to the Merchant Details page, where you can manage the selected merchant's settings and configurations - You can also add a merchant here (in the sandbox environment), but please contact [support@splitit.com](mailto:support@splitit.com) for more information ## General Details [​](https://developers.splitit.com/merchant-hub/merchants-management/\#general-details "Direct link to General Details") The box here shows basic information about your selected merchant account (whether you just have one, or its the selected one; it will show up on the front page if you only have one merchant): ![general details](https://developers.splitit.com/assets/images/hub-general-details-860414b03d58cda29befa89d6da11202.png) - **Display Name**: The public name of the merchant - **Registered Name**: The official name of the merchant as registered in the system - **Status**: The merchant's current operational status - **Merchant ID**: A unique identifier for the merchant within the Splitit system - **Primary Email**: The main email address associated with the merchant for contact and notifications - **Managing Entity**: The entity responsible for managing this merchant - **Country of Registration**: The country where the merchant is registered - **State of Registration**: The state within the country where the merchant is registered - **Created Date**: The date and time when the merchant was created in the system ## Customize Plan Design [​](https://developers.splitit.com/merchant-hub/merchants-management/\#customize-plan-design "Direct link to Customize Plan Design") In this section, you can personalize your design to align with your brand's identity. This includes a brand logo, which will be displayed on your outgoing emails and checkout page. ![hub logo](https://developers.splitit.com/assets/images/hub-logo-299f2e205afb1646cfc0eef2a8a937d6.png) ### Uploading a Brand Logo [​](https://developers.splitit.com/merchant-hub/merchants-management/\#uploading-a-brand-logo "Direct link to Uploading a Brand Logo") - **Drag & Drop**: Click and hold your logo file from your computer and drag it into the "Drag & drop files" area - **Browse**: Click on the **Browse** link to open a file selection dialog. Navigate to the location of your logo file, select it, and click **Open** - **Saving the Logo**: Once the logo is uploaded, click the purple **Save** button to apply the logo to your plan design - If you decide not to upload a logo or want to cancel the upload, click the **Cancel** button. ## Terminals [​](https://developers.splitit.com/merchant-hub/merchants-management/\#terminals "Direct link to Terminals") The Terminals page allows you to view detailed information about the terminals associated with your account: ![general details](https://developers.splitit.com/assets/images/hub-terminals-c0f226c91904e850ad266c8387424790.png) - **Terminal Name**: The name assigned to the terminal - **Terminal Id**: A unique identifier for the terminal - **Payment Gateway**: The payment gateway used by the terminal - **API Key**: The API key associated with the terminal - **Test Gateway**: Indicates whether the terminal is using a test gateway - **Status**: The current operational status of the terminal You can select by All, Active and Inactive by clicking the tabs at the top. ## Credentials [​](https://developers.splitit.com/merchant-hub/merchants-management/\#credentials "Direct link to Credentials") Credentials is one of the most important sections of the Merchant Hub as it's where you can fetch your Username and Password(s). Press ⧉ to copy your username. For passwords, you can **Generate a new password** or **See all** of your passwords. Delete passwords with 🗑. ![hub creds](https://developers.splitit.com/assets/images/hub-creds-142f763fcb85353e1addbee389d1302c.png) ## Emails [​](https://developers.splitit.com/merchant-hub/merchants-management/\#emails "Direct link to Emails") The **Emails** section allows you to manage email subscriptions for both shopper (choose which emails get sent to your shoppers) and merchant emails (emails sent to you related to plans). ![hub creds](https://developers.splitit.com/assets/images/hub-emails-c09e28da2668731d922e848d171e2eb9.png) - Use the search box to find a specific email (using the dropdown next to it to select whether to search among shopper or merchant emails) - You can preview each email by clicking the 👁 - Turn an email on and off by using its switch - Using the respective buttons in the Shopper Emails and Merchants Emails areas, you can also **Subscribe to all Defaults** and **Unsubscribe from All** ## Webhooks [​](https://developers.splitit.com/merchant-hub/merchants-management/\#webhooks "Direct link to Webhooks") The Webhooks section allows you to configure webhooks, which are notifications sent automatically by Splitit to a URL of your choice when specific events occur. - **Viewing and Searching Webhooks**: Use the Search Bar to find specific webhooks by entering relevant keywords - **Managing Webhooks**: Use the toggle switches next to each webhook to turn it on or off - **Updating Webhooks**: If a webhook URL has changed, enter the new URL under the appropriate webhook and click **Update** ![hub webhooks](https://developers.splitit.com/assets/images/hub-webhooks-614a23e7db69234ef503ed55fde5e561.png) You can find more information about webhooks [here](https://developers.splitit.com/operational/webhooks/merchant-webhooks). ## Users [​](https://developers.splitit.com/merchant-hub/merchants-management/\#users "Direct link to Users") The Users section allows you to view and manage users associated with a merchant account. You can add new users, see roles and statuses, and delete users with 🗑: ![hub users](https://developers.splitit.com/assets/images/hub-users-7fe2517645297dc4e51ca51db8027384.png) Clicking **Add new User** will display the Create User pop-up: ![create user popup](https://developers.splitit.com/assets/images/hub-create-user-popup-a037c32ee397031b3b9960b0b5b7f7f8.png) - **Full Name**: Enter the full name of the user - **Email**: Enter the user's email address - **Phone Number**: Enter the user's phone number, including the country code - **Culture Name**: Select the user's preferred language and region settings from the dropdown menu (e.g., English (United States)). - **Role**: Select the appropriate role for the user from the dropdown menu (selecting from Account Owner, Manager, Cashier and Developer) Click the **Create** button to save the new users and add them to the system. - [Front Page](https://developers.splitit.com/merchant-hub/merchants-management/#front-page) - [General Details](https://developers.splitit.com/merchant-hub/merchants-management/#general-details) - [Customize Plan Design](https://developers.splitit.com/merchant-hub/merchants-management/#customize-plan-design) - [Uploading a Brand Logo](https://developers.splitit.com/merchant-hub/merchants-management/#uploading-a-brand-logo) - [Terminals](https://developers.splitit.com/merchant-hub/merchants-management/#terminals) - [Credentials](https://developers.splitit.com/merchant-hub/merchants-management/#credentials) - [Emails](https://developers.splitit.com/merchant-hub/merchants-management/#emails) - [Webhooks](https://developers.splitit.com/merchant-hub/merchants-management/#webhooks) - [Users](https://developers.splitit.com/merchant-hub/merchants-management/#users)[Skip to main content](https://developers.splitit.com/api/chargebacks/get-all-chargebacks/#__docusaurus_skipToContent_fallback) # Get All Chargebacks ``` GET https://chargebacks.sandbox.splitit.com/api/chargebacks ``` Returns a list of all open chargebacks against the merchant. Supports pagination. You can optionally specify a date range and/or status type. A successful response includes extensive info about the dispute, including created date, id, due date, etc. ## Request [​](https://developers.splitit.com/api/chargebacks/get-all-chargebacks/\#request "Direct link to Request") ### Query Parameters **status**DisputeStatus **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] **from**date-time **to**date-time ### Header Parameters **X-Splitit-Skip**int32 **Default value:** `0` With respect to pagination, how many pages to skip ahead (default is 0) **X-Splitit-Take**int32 **Default value:** `100` With respect to pagination, the number of records to include in each page (default is 100) ## Responses [​](https://developers.splitit.com/api/chargebacks/get-all-chargebacks/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Chargebacks** object\[\] required Array \[\ \ **Id** stringrequired\ \ **DisputeCreatedDate** date-timerequired\ \ **DueDate** date-timerequired\ \ **InstallmentPlanNumber** stringrequired\ \ **InstallmentNumber** int64required\ \ **PlanStatus** stringrequired\ \ **TransactionId** stringrequired\ \ **MerchantName** stringrequired\ \ **TotalPlanAmount**\ object\ \ required\ \ **Amount** numberrequired\ \ **CurrencyCode** stringrequired\ \ **DisputeAmount**\ object\ \ required\ \ **Amount** numberrequired\ \ **CurrencyCode** stringrequired\ \ **Status** DisputeStatus (string)required\ \ **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\]\ \ **PlanActivatedDate** date-time\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Chargebacks": [\ {\ "Id": "string",\ "DisputeCreatedDate": "2024-06-06T16:41:09.381Z",\ "DueDate": "2024-06-06T16:41:09.381Z",\ "InstallmentPlanNumber": "string",\ "InstallmentNumber": 0,\ "PlanStatus": "string",\ "TransactionId": "string",\ "MerchantName": "string",\ "TotalPlanAmount": {\ "Amount": 0,\ "CurrencyCode": "string"\ },\ "DisputeAmount": {\ "Amount": 0,\ "CurrencyCode": "string"\ },\ "Status": "Open",\ "PlanActivatedDate": "2024-06-06T16:41:09.381Z"\ }\ ] } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://chargebacks.sandbox.splitit.com/api/chargebacks' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Parameters Show optional parameters status — query \-\-\-OpenWonLostClosedOtherPending from — query to — query X-Splitit-Skip — header X-Splitit-Take — header Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/shopify/#__docusaurus_skipToContent_fallback) [**📄️About and Installation** \\ Introduction](https://developers.splitit.com/platform-plugins/shopify)[**📄️Onboarding Shopify to VIS Installments** \\ If you are a Shopify for Visa merchant, to prepare your account there are a few things you'll need to do:](https://developers.splitit.com/platform-plugins/shopify-visa)[Skip to main content](https://developers.splitit.com/apis/#__docusaurus_skipToContent_fallback) Splitit offers five APIs to help you streamline management of your installment plans and merchant account. You can use Splitit's APIs to: - [Create and manage installment plans](https://developers.splitit.com/category/installments-api-v3) - [Get merchant reports](https://developers.splitit.com/category/merchant-reports-api) - [Handle chargebacks](https://developers.splitit.com/category/chargebacks-api) - [Create and manage encryption keys](https://developers.splitit.com/category/key-exchange-server-api) - [Onboard your own merchants](https://developers.splitit.com/category/account-management-system-api)[Skip to main content](https://developers.splitit.com/category/back-office/#__docusaurus_skipToContent_fallback) [**📄️Payment Models** \\ Splitit offers two payment models We fund you and we provide detailed reporting and shopper-relationship management throughout the lifecycle of the plan—thus essentially requiring nothing more from your end.](https://developers.splitit.com/back-office/funding)[**📄️Issuer Portal Reports** \\ If you have an issuer relationship your Splitit, you will be given access to an Issuer Portal, where you can view and download reports related to:](https://developers.splitit.com/back-office/issuer-portal-reports/)[**📄️Alternative Timeframes and First Payment Options** \\ The default setting for Splitit plans is multiple monthly installments. It is also common for shoppers to pay the first installment at checkout. There are however, other options for installment plans, most of which Splitit support can set for you.](https://developers.splitit.com/back-office/alternative-timeframes-and-first)[Skip to main content](https://developers.splitit.com/api/v3/get-installment-plan/#__docusaurus_skipToContent_fallback) # Fetch Plan by Number ``` GET https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber ``` Retrieve an installment plan's information by providing its number in your path. ## Request [​](https://developers.splitit.com/api/v3/get-installment-plan/\#request "Direct link to Request") ### Path Parameters **installmentPlanNumber**stringrequired The number of the installment plan for which you'd like information ### Header Parameters **X-Splitit-IdempotencyKey**string ## Responses [​](https://developers.splitit.com/api/v3/get-installment-plan/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-599 Success - application/json - Schema - Example (from schema) **Schema** **InstallmentPlanNumber** string **DateCreated** date-timerequired **RefOrderNumber** string **PurchaseMethod** string **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\] How purchase was made (default is `ECommerce`) **Status** stringrequired **Possible values:** \[ `Initialized`, `PendingCapture`, `Active`, `Cleared`, `Canceled`\] **Currency** string **OriginalAmount** decimal **Amount** decimal **Authorization** object **Status** stringrequired **Possible values:** \[ `NA`, `Succeeded`, `Pending3DS`, `Failed`\] **Date** date-time **SplititErrorResultCode** string **GatewayTransactionID** string **GatewayResultCode** string **GatewayResultMessage** string **ThreeDSRedirect** object **Url** string **Verb** string **Params** object **property name\*** string **CAVV** string **ECI** string **Shopper** object **FullName** string **Email** stringrequired **PhoneNumber** string **Culture** string **BillingAddress** object **AddressLine** string **AddressLine2** string **City** string **Country** string ISO 3166 Country name OR 2-character code OR 3-character code **State** string ISO 3166-2 State **Zip** string **PaymentMethod** object **Type** **Possible values:** \[ `Card`, `SplititToken`\] **Card** object required **CardHolderFullName** string **CardNumber** stringrequired **CardExpYear** stringrequired **CardExpMonth** stringrequired **CardCvv** string **CardBrand** string **Possible values:** \[ `Mastercard`, `Visa`, `AmericanExpress`, `Maestro`, `JCB`, `CUP`, `UPI`, `Discover`, `Other`\] **CardType** string **Possible values:** \[ `Credit`, `Debit`, `Charge`, `Other`, `Prepaid`, `VisaDeferredDebit`, `NetworkOnly`\] **Token** string **ExtendedParams** object Additional data that can be added as key/value pair parameters by merchant (and later can be retrieved by GET) **property name\*** string **Installments** object\[\] Array \[\ \ **InstallmentNumber** int32required\ \ **Amount** decimalrequired\ \ **ProcessDateTime** date-time\ \ **Status** stringrequired\ \ **Possible values:** \[ `Pending`, `Processed`, `Canceled`\]\ \ \] **Refunds** object\[\] Array \[\ \ **RefundId** string\ \ **SubmitDate** date-timerequired\ \ **TotalAmount** decimalrequired\ \ **Status** stringrequired\ \ **Possible values:** \[ `Pending`, `Succeeded`, `Failed`\]\ \ **NonCreditRefundAmount** decimalrequired\ \ **CreditRefundAmount** decimalrequired\ \ \] **Links** object **Checkout** string **LearnMore** string **TermsConditions** string **PrivacyPolicy** string ```codeBlockLines_e6Vv { "InstallmentPlanNumber": "string", "DateCreated": "2024-07-24T18:00:33.282Z", "RefOrderNumber": "string", "PurchaseMethod": "InStore", "Status": "Initialized", "Currency": "string", "OriginalAmount": 0, "Amount": 0, "Authorization": { "Status": "NA", "Date": "2024-07-24T18:00:33.282Z", "SplititErrorResultCode": "string", "GatewayTransactionID": "string", "GatewayResultCode": "string", "GatewayResultMessage": "string", "ThreeDSRedirect": { "Url": "string", "Verb": "string", "Params": {} }, "CAVV": "string", "ECI": "string" }, "Shopper": { "FullName": "string", "Email": "string", "PhoneNumber": "string", "Culture": "string" }, "BillingAddress": { "AddressLine": "string", "AddressLine2": "string", "City": "string", "Country": "string", "State": "string", "Zip": "string" }, "PaymentMethod": { "Card": { "CardHolderFullName": "string", "CardNumber": "string", "CardExpYear": "string", "CardExpMonth": "string", "CardCvv": "string", "CardBrand": "Mastercard", "CardType": "Credit" }, "Token": "string" }, "ExtendedParams": {}, "Installments": [\ {\ "InstallmentNumber": 0,\ "Amount": 0,\ "ProcessDateTime": "2024-07-24T18:00:33.282Z",\ "Status": "Pending"\ }\ ], "Refunds": [\ {\ "RefundId": "string",\ "SubmitDate": "2024-07-24T18:00:33.282Z",\ "TotalAmount": 0,\ "Status": "Pending",\ "NonCreditRefundAmount": 0,\ "CreditRefundAmount": 0\ }\ ], "Links": { "Checkout": "string", "LearnMore": "string", "TermsConditions": "string", "PrivacyPolicy": "string" } } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters installmentPlanNumber — pathrequired Show optional parameters X-Splitit-IdempotencyKey — header Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/v3/verify-authorization/#__docusaurus_skipToContent_fallback) # Verify Authorization ``` GET https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber/verifyauthorization ``` You must call Verify Authorization in cases when plan authorization and order closure do not happen simultaneously. An example of this would be when a customer checks out with a Payment Form or Flex Form, or is redirected for 3DS. To call it, you need to provide the plan number you received in the success response from [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan). ## Request [​](https://developers.splitit.com/api/v3/verify-authorization/\#request "Direct link to Request") ### Path Parameters **installmentPlanNumber**stringrequired ### Header Parameters **X-Splitit-IdempotencyKey**string ## Responses [​](https://developers.splitit.com/api/v3/verify-authorization/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-599 Success - application/json - Schema - Example (from schema) **Schema** **IsAuthorized** booleanrequired **AuthorizationAmount** decimal **Authorization** object **Status** stringrequired **Possible values:** \[ `NA`, `Succeeded`, `Pending3DS`, `Failed`\] **Date** date-time **SplititErrorResultCode** string **GatewayTransactionID** string **GatewayResultCode** string **GatewayResultMessage** string **ThreeDSRedirect** object **Url** string **Verb** string **Params** object **property name\*** string **CAVV** string **ECI** string ```codeBlockLines_e6Vv { "IsAuthorized": true, "AuthorizationAmount": 0, "Authorization": { "Status": "NA", "Date": "2024-07-24T18:00:33.273Z", "SplititErrorResultCode": "string", "GatewayTransactionID": "string", "GatewayResultCode": "string", "GatewayResultMessage": "string", "ThreeDSRedirect": { "Url": "string", "Verb": "string", "Params": {} }, "CAVV": "string", "ECI": "string" } } ``` Unauthorized Request: Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error: Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber/verifyauthorization' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters installmentPlanNumber — pathrequired Show optional parameters X-Splitit-IdempotencyKey — header Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/reports/introduction/#__docusaurus_skipToContent_fallback) On this page Version: 1.0.0 # Introduction You can fetch all of your report data from a single endpoint in CSV, JSON or XSLX format. The [available reports](https://developers.splitit.com/merchant-portal/merchant-portal-guide#reports) are the same as in your [merchant portal](https://merchant.splitit.com/reports/all) and include Reconciliation, New Plans, Debit (pending deprecation), Outstanding Amount, Funding (pending deprecation), and Shopper Outstanding. Begin by [authenticating](https://developers.splitit.com/api/reports/get-splitit-token) to the Splitit ID server, then [specify your desired report and fields in a JSON body](https://developers.splitit.com/api/reports/request-report-data) sent to the data endpoint. ## Notes: [​](https://developers.splitit.com/api/reports/introduction/\#notes "Direct link to Notes:") - Your merchant account must have the correct permissions enabled to call reports by API, so if you receive an unauthorized response, contact [support@splitit.com](mailto:support@splitit.com). ## Authentication [​](https://developers.splitit.com/api/reports/introduction/\#authentication "Direct link to Authentication") - HTTP: Bearer Auth | Security Scheme Type: | http | | HTTP Authorization Scheme: | bearer | - [Notes:](https://developers.splitit.com/api/reports/introduction/#notes)[Skip to main content](https://developers.splitit.com/api/keys/set-key-expiration/#__docusaurus_skipToContent_fallback) # Set Key Expiration ``` PUT https://key-exchange.sandbox.splitit.com/api/v1/key/:id/set-expiration ``` Set the expiry for a key in UTC format. Note that this call does not return a 200 message but if you [fetch](https://developers.splitit.com/api/keys/fetch-a-key) your key again, you will see the new expiration date. ## Request [​](https://developers.splitit.com/api/keys/set-key-expiration/\#request "Direct link to Request") ### Path Parameters **id**stringrequired Note that this field is returned as UniqueID from some calls. - application/json ### Body **required** **ExpirationUtc** date-timerequired ## Responses [​](https://developers.splitit.com/api/keys/set-key-expiration/\#responses "Direct link to Responses") - 400 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X PUT 'https://key-exchange.sandbox.splitit.com/api/v1/key/:id/set-expiration' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "ExpirationUtc": "2024-07-06T15:46:26.409Z" }' ``` Request Collapse all Base URL Edit https://key-exchange.sandbox.splitit.com Auth Bearer Token Parameters id — pathrequired Body required ``` { "ExpirationUtc": "2024-07-06T15:46:26.409Z" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/checkout-solutions/hosted-fields/#__docusaurus_skipToContent_fallback) On this page # Hosted Fields ## Overview [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#overview "Direct link to Overview") Splitit's Hosted Fields is a unique, low-PCI compliance product that allows you to fully integrate Splitit into the checkout process on your website, both stylistically and functionally. Hosted Fields utilize individual iFrames plugged directly into the Splitit servers, but since you can extensively customize them, they look and feel like they are native to your site. ## Demo [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#demo "Direct link to Demo") Hosted Fields Demo [iframe](/hosted-fields.html) ## Usage [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#usage "Direct link to Usage") To use Hosted Fields, you begin by starting a plan using Splitit APIs on your server. A plan number is returned that you then send to your front end. On your front end, you import the Hosted Fields library and generate a stylable Hosted Fields instance by interacting with your browser's window object, providing it with the plan number. You can subsequently manipulate your Hosted Fields instance in various ways. ## Step-by-Step Guide [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#step-by-step-guide "Direct link to Step-by-Step Guide") ### 1\. Establish a Plan on Your Server [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#1-establish-a-plan-on-your-server "Direct link to 1. Establish a Plan on Your Server") #### A. Authenticate [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#a-authenticate "Direct link to A. Authenticate") Fetch a bearer token using the instructions under ["Authentication"](https://developers.splitit.com/api/v3/introduction). Attach it as a header to all subsequent API calls. #### B. Initiate the Plan [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#b-initiate-the-plan "Direct link to B. Initiate the Plan") [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) a new Splitit plan, adding your own `TerminalId` from your merchant portal as well as any data you'd like to pass initially. In the object that is returned, note the plan number in the field `InstallmentPlanNumber`. (For testing purposes, you can generate plan numbers at the [Splitit test plan URL](https://internalapi.sandbox.splitit.com/api/v1/demo-plan)). ### 2\. Set Up Your Front End [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#2-set-up-your-front-end "Direct link to 2. Set Up Your Front End") #### A. Add a Container `
` [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#a-add-a-container-div "Direct link to a-add-a-container-div") Set a `
` in your HTML to receive your Hosted Fields: ```codeBlockLines_e6Vv
``` #### B. Import the Hosted Fields Library: [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#b-import-the-hosted-fields-library "Direct link to B. Import the Hosted Fields Library:") ```codeBlockLines_e6Vv ``` #### C. Spawn a Hosted Fields instance [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#c-spawn-a-hosted-fields-instance "Direct link to C. Spawn a Hosted Fields instance") Spawn a Hosted Fields instance by calling a function on your browser's `window` object: ```codeBlockLines_e6Vv var hostedFields = window.Splitit.FlexForm.setup({ showOnReady: true, // optional; show form immediately or not container: 'flex-form', //this is variable but must match your HTML ipn: "{{ the plan number from your Initiate call }}", culture: 'en-US', // language/culture; see https://developers.splitit.com/on-site-messaging/installation#languages-supported-by-on-site-messaging-iso-639-1-values for a list nameField: { // optional hide: true }, paymentButton: { // hides payment button if you are using a custom implementation isCustom: true } numberOfInstallments: 5, // optional billingAddress: { // optional addressLine: '260 Madison Avenue.', addressLine2: 'Apartment 1', city: 'New York', state: 'NY', country: 'USA', zip: '10016' }, consumerData: { //optional fullName: 'John Smith', email: 'JohnS@splitit.com', phoneNumber: '1-844-775-4848', cultureName: 'en-us' }, onSuccess(data) { //Callback for success alert('SUCCESS - ' + JSON.stringify(data)); console.log('data:', data); } }).ready((manage) => { console.log('~ READY CALLBACK', manage); }); ``` In your instance, you must provide your container name, the _Installment Plan Number_ from your backend call, your desired culture (i.e., language), your number of desired installments, along with as much shopper data as you'd like to send. You can add any code you'd like after _.ready_, which will execute once the instance has completely spawned. #### D. Style Your Hosted Fields Instance [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#d-style-your-hosted-fields-instance "Direct link to D. Style Your Hosted Fields Instance") Style your Hosted Fields by calling `window.Splitit.FlexForm.setStyles()` and passing in an object with your desired styles: ```codeBlockLines_e6Vv window.Splitit.FlexForm.setStyles({ '--spt-color-primary': '#732c70', //changes color of all installments texts, “total” text, as well as checkbox background '--spt-color-pay-button': '#000', //changes color of activated pay button '--spt-color-pay-button-text': '#fff', /// changes text color on pay button '--spt-color-pay-button-disabled': '#00000033', //changes color of pay button when it’s disabled (which it is by default before shopper checks out) '--spt-color-border-focused': '#732c70', // changes border color of card number field, expiration date field and CVV field when they are in focus '--spt-color-border-idle': //changes border color of card number field, expiration date field and CVV field when they are not in focus 'rgba(203, 203, 203, 0.54)', '--spt-color-border-error': '#ff0000', //changes border color of card number field, expiration date field and CVV field when an error is triggered '--spt-color-error': '#ff0000', // changes color of error texts pertaining to card number field, expiration date field and CVV field '--spt-color-labels': '#757575', //changes color of labels above card field, expiration date field and CVV field '--spt-color-main-shade': '#ece8ee', //changes highlight behind installment choices '--spt-color-link': 'rgb(125, 166, 222)' // changes color of link texts, i.e. "Learn More", "Terms and Conditions" and "Privacy Policy" '--spt-color-text': '#000' // changes color of text designated by "primary-text" class }) ``` #### E. Access Additional Hosted Fields Functionality [​](https://developers.splitit.com/checkout-solutions/hosted-fields/\#e-access-additional-hosted-fields-functionality "Direct link to E. Access Additional Hosted Fields Functionality") (This section assumes that you have spawned a Hosted Fields instance that you attached to a variable _hostedFields_.) 1. Change the language ("culture") of your Hosted Fields by calling: ```codeBlockLines_e6Vv hostedFields.changeLanguage:({your desired language}) ``` See list of languages/cultures [here](https://developers.splitit.com/on-site-messaging/installation/#languages-supported-by-on-site-messaging-iso-639-1-values). 2. Trigger the pay button from an element other than the pay button by calling: ```codeBlockLines_e6Vv hostedFields.pay() ``` 3. Activate a callback that will execute when your Hosted Fields instance is ready by calling: ```codeBlockLines_e6Vv hostedFields.ready(console.log('form is ready')) ``` 4. Hide your Hosted Fields by calling: ```codeBlockLines_e6Vv hostedFields.hide() ``` 5. Show your Hosted Fields by calling: ```codeBlockLines_e6Vv hostedFields.show() ``` 6. Toggle (show/hide) your Hosted Fields by calling: ```codeBlockLines_e6Vv hostedFields.toggle() ``` 7. Return a boolean declaring whether all your Hosted Field inputs are valid (and T&Cs are checked) by calling: ```codeBlockLines_e6Vv console.log(hostedFields.isValid()) ``` 8. Check if all of your Hosted Fields inputs are valid and highlight the ones that aren't valid by calling: ```codeBlockLines_e6Vv hostedFields.triggerValidation() ``` 9. Fetch the number of installments that has been selected by calling: ```codeBlockLines_e6Vv hostedFields.getSelectedNumInstallments() ``` 10. Get the active plan's installment plan number (IPN) by accessing the variable `ipn`: ```codeBlockLines_e6Vv console.log(hostedFields.ipn) ``` 11. Destroy your Hosted Fields instance by calling: ```codeBlockLines_e6Vv hostedFields.destroy() ``` 12. Update the number of installments by calling the following function, and providing an integer: ```codeBlockLines_e6Vv hostedFields.updateInstallmentOption({number of installments}) ``` 13. Mark the _Terms and Conditions_ field as signed by calling: ```codeBlockLines_e6Vv hostedFields.updateTermsSigned() ``` 14. Call a function to update address and shopper details by calling: ```codeBlockLines_e6Vv var data = { billingAddress: { addressLine: 'addressline string', addressLine2: 'addressline2 string', city: 'city string', state: 'state string', country: 'country string', zip: 'zip string' }, consumerData: { fullName: 'fullname string', email: 'email string', phoneNumber: 'phone number string', cultureName: 'culture name string' } } hostedFields.updateDetails(data) ``` - [Overview](https://developers.splitit.com/checkout-solutions/hosted-fields/#overview) - [Demo](https://developers.splitit.com/checkout-solutions/hosted-fields/#demo) - [Usage](https://developers.splitit.com/checkout-solutions/hosted-fields/#usage) - [Step-by-Step Guide](https://developers.splitit.com/checkout-solutions/hosted-fields/#step-by-step-guide) - [1\. Establish a Plan on Your Server](https://developers.splitit.com/checkout-solutions/hosted-fields/#1-establish-a-plan-on-your-server) - [2\. Set Up Your Front End](https://developers.splitit.com/checkout-solutions/hosted-fields/#2-set-up-your-front-end)[Skip to main content](https://developers.splitit.com/api/chargebacks/get-splitit-token/#__docusaurus_skipToContent_fallback) # Get Splitit Token ``` POST https://id.sandbox.splitit.com/connect/token ``` Authenticate using your _client\_id_ and _client\_secret_ from your [merchant portal](https://merchant.sandbox.splitit.com/) (Splitit support will also have to enable Chargeback API access for you). You can authenticate directly in the _Request_ box on this page (at right). For _grant\_type_, enter _client\_credentials_, for _scope_ type enter _disputes.api_, then enter your _client\_id_ and _client\_secret_. Scroll down and press _SEND API REQUEST_. In the response, copy your _access\_token_, which you can use to execute the other endpoints in this API reference. - Note that unlike the other endpoints, your authentication payload should use the format _application/x-www-form-urlencoded_. ## Request [​](https://developers.splitit.com/api/chargebacks/get-splitit-token/\#request "Direct link to Request") - application/x-www-form-urlencoded ### Body **required** **grant\_type** string i.e., client\_credentials **scope** string i.e. disputes.api **client\_id** string e.g., APIUser000032201 **client\_secret** string e.g. sU9tOVHOcM6jPOjjWZpXZs4V0cmc01BZfChF5afrj71Dz2COn2 ## Responses [​](https://developers.splitit.com/api/chargebacks/get-splitit-token/\#responses "Direct link to Responses") - 200 Success - application/json - Schema - Example (from schema) **Schema** **access\_token** string The bearer token to add to your header **expires\_in** integer How long token will last **token\_type** string Type of token **scope** string The scope granted to your request ```codeBlockLines_e6Vv { "access_token": "string", "expires_in": 0, "token_type": "string", "scope": "string" } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://id.sandbox.splitit.com/connect/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Accept: application/json' ``` Request Collapse all Base URL Edit https://id.sandbox.splitit.com/connect Body required grant\_type scope client\_id client\_secret Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/merchant-reports-api/#__docusaurus_skipToContent_fallback) [**📄️Introduction** \\ You can fetch all of your report data from a single endpoint in CSV, JSON or XSLX format. The \[available reports\](/merchant-portal/merchant-portal-guide#reports) are the same](https://developers.splitit.com/api/reports/introduction)[**📄️Get Splitit Token** \\ Authenticate using your \*client\_id\* and \*client\_secret\* from your \[merchant portal\](https://merchant.sandbox.splitit.com) (Splitit support will also have to enable reports API access for you).](https://developers.splitit.com/api/reports/get-splitit-token)[**📄️Request Report Data** \\ To fetch report data, specify your desired report type, time frame (separated by 'from and 'to'), format and columns according to the specifications below.](https://developers.splitit.com/api/reports/request-report-data)[**📄️Available Columns by Report** \\ Reconciliation Report](https://developers.splitit.com/api/reports/available-report-columns)[Skip to main content](https://developers.splitit.com/checkout-solutions/hosted-fields/hosted-fields-diagram/#__docusaurus_skipToContent_fallback) ![](https://developers.splitit.com/assets/images/hosted-fields-dbdcbde94f0dc9fa0418bfc00cd9dc3a.jpeg)[Skip to main content](https://developers.splitit.com/category/merchant-hub/#__docusaurus_skipToContent_fallback) [**📄️Getting Started** \\ You should have obtained your username and temporary password via email from Splitit in order to access the Hub. If this is the first time you are logging in, you will be asked to reset your password. The system will then log you into the Hub. If you have not yet received this information, please reach out to support@splitit.com.](https://developers.splitit.com/merchant-hub/getting-started)[**📄️Dashboard** \\ The Dashboard provides quick visualizations of your plans and other metrics, and also allows you to download the data you see in the visualizations.](https://developers.splitit.com/merchant-hub/dashboard)[**📄️Payment Plans (Beta)** \\ Overview](https://developers.splitit.com/merchant-hub/payment-plans)[**📄️Create New Payment Plans** \\ Create Plan in the left-hand menu brings up a window with several options for creating plans.](https://developers.splitit.com/merchant-hub/create-new-plans)[**📄️Merchants Management** \\ Access the Merchants Management section from the left-side menu to get/set your credentials, set your gateway info, customize your plans, manage your shopper emails, set webhooks related to your plans, and manage users on your account.](https://developers.splitit.com/merchant-hub/merchants-management)[**🗃️Chargebacks Management** \\ 3 items](https://developers.splitit.com/category/chargebacks-management)[**🗃️Reports and Logs** \\ 4 items](https://developers.splitit.com/category/reports-and-logs)[Skip to main content](https://developers.splitit.com/api/reports/get-splitit-token/#__docusaurus_skipToContent_fallback) # Get Splitit Token ``` POST https://id.sandbox.splitit.com/connect/token ``` Authenticate using your _client\_id_ and _client\_secret_ from your [merchant portal](https://merchant.sandbox.splitit.com/) (Splitit support will also have to enable reports API access for you). For testing purposes, you can authenticate directly in the _Request_ box on this page (at right). For _grant\_type_, enter _client\_credentials_, for _scope_ enter _dataretrieval.api reportingSystem.config.api reportingSystem.operation.api_, then enter your _client\_id_ and _client\_secret_. Scroll down and press _SEND API REQUEST_. In the response, copy your _access\_token_ and then paste it in the _Bearer Token_ box. You can now use your token to execute the other endpoints in this API reference. - Note that unlike the other endpoint, your authentication payload should use the format _application/x-www-form-urlencoded_. ## Request [​](https://developers.splitit.com/api/reports/get-splitit-token/\#request "Direct link to Request") - application/x-www-form-urlencoded ### Body **required** **grant\_type** string i.e. client\_credentials **scope** string i.e. dataretrieval.api reportingSystem.config.api reportingSystem.operation.api **client\_id** string e.g. APIUser000032201 **client\_secret** string e.g. sU9tOVHOcM6jPOjjWZpXZs4V0cmc01BZfChF5afrj71Dz2COn2 ## Responses [​](https://developers.splitit.com/api/reports/get-splitit-token/\#responses "Direct link to Responses") - 200 Success - application/json - Schema - Example (from schema) **Schema** **access\_token** string The bearer token to add to your header **expires\_in** integer How long token will last **token\_type** string Type of token **scope** string The scope granted to your request ```codeBlockLines_e6Vv { "access_token": "string", "expires_in": 0, "token_type": "string", "scope": "string" } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://id.sandbox.splitit.com/connect/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Accept: application/json' ``` Request Collapse all Base URL Edit https://id.sandbox.splitit.com/connect Body required grant\_type scope client\_id client\_secret Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/using-keys/signing-responses/#__docusaurus_skipToContent_fallback) On this page You may wish to definitively verify that responses from the Splitit APIs originated from the Splitit APIs. In order to do this, you can request that Splitit API responses be signed. In this process, Splitit uses a private key to sign responses, which you can then verify originated at Splitit by implementing the corresponding public key. Things to know: - Supported by API V3 only - You can choose to receive Splitit's signature either in a header or in an embedded JWS format - For the sake of debugging and support, please preserve the response header _x-splitit-traceid_ ## Instructions [​](https://developers.splitit.com/api/using-keys/signing-responses/\#instructions "Direct link to Instructions") 1. Begin by authenticating to the Splitit ID server, using the instructions [here](https://developers.splitit.com/api/keys/get-splitit-token). You'll receive a bearer token in the response. 2. Add the bearer token from step 1 in your header, then call [Generate Key Pair](https://developers.splitit.com/api/keys/generate-key-pair). The body to send is as follows: ```codeBlockLines_e6Vv { "Type": "RSA", "Usage": [\ "ResponseSignature"\ ], "OwnerCode": "string" // given to you by Splitit support "ExpirationUtc": "2024-07-06T15:46:26.409Z", // when you'd like your key to expire (if you don't set this, a default value will be set by Splitit) "RelatedClientId": "string" //the client from your account you'd like to use; given to you by Splitit support } ``` You will receive a public key in return along with its corresponding Key ID. 3. Perform a request on any API V3 endpoint, making sure to attach: - your bearer header from step 1 - a potential additional token (depending on your integration) - the optional header _X-Splitit-ResponseSignature-Mode: jwt_, which specifies that you'd like to receive the signature back in embedded [JWS format](https://www.rfc-editor.org/rfc/rfc7515.html) rather than in the headers 4. Receive a response from Splitit, which will differ depending on whether you requested the signature in headers (default) or in the body: #### Default (in headers) [​](https://developers.splitit.com/api/using-keys/signing-responses/\#default-in-headers "Direct link to Default (in headers)") You will receive the following headers: - _X-Splitit-ResponseSignature-KeyId_ \- The id of the key used to sign the response (if you have generated more than one key with the same _Usage_, the key that Splitit will use from your account is the one that has the latest expiration date) - _X-Splitit-ResponseSignature-Token_ \- nonce token used to enhance security in case of an empty body response - _X-Splitit-ResponseSignature_ \- the actual signature #### Embedded (signature in JWS format embedded in body) [​](https://developers.splitit.com/api/using-keys/signing-responses/\#embedded-signature-in-jws-format-embedded-in-body "Direct link to Embedded (signature in JWS format embedded in body)") The actual signature (including its headers with Key ID) will arrive encoded in the body. Note that if you have elected to receive your Splitit responses encrypted with MLE, the signature will be _nested_, i.e. the payload for your JWS will be JWE instead of plaintext. 5. Verify that the message was sent from Splitit using the signature and the public key from step 2. - [Instructions](https://developers.splitit.com/api/using-keys/signing-responses/#instructions)[Skip to main content](https://developers.splitit.com/merchant-hub/chargebacks-management/#__docusaurus_skipToContent_fallback) On this page Access the Chargebacks Management page from the left-hand menu in the Splitit Hub. Here you will see a list of chargebacks associated with your merchant account showing Created Date, Merchant Name, Plan Number, Plan Status, Liability, Reason, Due Date, Chargeback Status, and Internal Status. ## Filtering Chargebacks [​](https://developers.splitit.com/merchant-hub/chargebacks-management/\#filtering-chargebacks "Direct link to Filtering Chargebacks") Click on the **Filters** button to bring up a dialogue where you can filter by Chargeback Status, Chargeback Created Date, Reason Code, Plan Number or Plan Status. You can also **Clear filters**, **Cancel**, or **Search**: ![hub chargebacks filter](https://developers.splitit.com/assets/images/hub-chargebacks-filter-72a49ab8f52ad5ad77282b6bc85fee47.png) ## Chargeback Details Page (Managed Merchants) [​](https://developers.splitit.com/merchant-hub/chargebacks-management/\#chargeback-details-page-managed-merchants "Direct link to Chargeback Details Page (Managed Merchants)") Clicking on any row on the front page in the Chargebacks section will bring up detailed information about a specific chargeback, including the Plan Amount, Plan Status, Merchant Due Date (when chargeback is due), Dispute ID, Installment Plan Number, Shopper Name, Chargeback Status, Reason and whether there are multiple chargebacks involved or not. ![chargeback details submit](https://developers.splitit.com/assets/images/hub-chargeback-details-submit-8fcc19061f2e0b3097065ea9c5153ab5.png) ### Proof/Documents Section [​](https://developers.splitit.com/merchant-hub/chargebacks-management/\#proofdocuments-section "Direct link to Proof/Documents Section") At the top are **Uploaded Documents**, a list of documents uploaded as proof against the chargeback. Beneath that is the Uploads section, an area to upload additional files. Supported formats include PDF, JPEG, JPG, PNG, and GIF. - Upload a File: Click or drag and drop files into the upload area - You can also download and delete added files with the icon ### Comments Section [​](https://developers.splitit.com/merchant-hub/chargebacks-management/\#comments-section "Direct link to Comments Section") In the _Comments_ box, add comments related to the chargeback. Type your comment in the text box (up to 500 characters) and click _Add comment_. ## Chargeback Details Page (Core Merchants) [​](https://developers.splitit.com/merchant-hub/chargebacks-management/\#chargeback-details-page-core-merchants "Direct link to Chargeback Details Page (Core Merchants)") Clicking on any row on the front page in the Chargebacks section will bring up detailed information about a specific chargeback, including the Plan Amount, Plan Status, Merchant Due Date, Dispute ID, Installment Plan Number, Shopper Name, Chargeback Status, Reason, and whether there are multiple chargebacks involved or not. ![chargeback details submit](https://developers.splitit.com/assets/images/hub-core-chargeback-details-d17bd46ab5b82830417a707a6e251b1d.png) Handle chargebacks through your gateway or processor. - [Filtering Chargebacks](https://developers.splitit.com/merchant-hub/chargebacks-management/#filtering-chargebacks) - [Chargeback Details Page (Managed Merchants)](https://developers.splitit.com/merchant-hub/chargebacks-management/#chargeback-details-page-managed-merchants) - [Proof/Documents Section](https://developers.splitit.com/merchant-hub/chargebacks-management/#proofdocuments-section) - [Comments Section](https://developers.splitit.com/merchant-hub/chargebacks-management/#comments-section) - [Chargeback Details Page (Core Merchants)](https://developers.splitit.com/merchant-hub/chargebacks-management/#chargeback-details-page-core-merchants)[Skip to main content](https://developers.splitit.com/api/v3/introduction/#__docusaurus_skipToContent_fallback) Version: 3.0 # Introduction Splitit's Installments API is the primary Splitit tool for establishing and maintaining installment plans. Use it to verify shopper eligibility, create plans with or without immediate authorization, get plan information, update plan status, and process refunds and cancellations. ## Authentication [​](https://developers.splitit.com/api/v3/introduction/\#authentication "Direct link to Authentication") - HTTP: Bearer Auth | Security Scheme Type: | http | | HTTP Authorization Scheme: | bearer |[Skip to main content](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#__docusaurus_skipToContent_fallback) On this page # Hosted Form Redirect Splitit's Hosted Form Redirect features a full redirect from your site to Splitit's. To use it, you fetch a URL from the Splitit API then send your customer there to enter credit card data. After the customer is done checking out, they are sent back to URLs of your choice, which you specify in the initial API call (success, cancel, or failure). Hosted Form Redirect Demo [iframe](/hosted-form-redirect.html) ### Bearer Token [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/\#bearer-token "Direct link to Bearer Token") Fetch a bearer token and attach it as header using the [instructions under "Authentication."](https://developers.splitit.com/api/v3/introduction) ### Initiate an Installment Plan [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/\#initiate-an-installment-plan "Direct link to Initiate an Installment Plan") The [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) API call requires specific details such as `TerminalId`, order details (capture strategy, amount, shopper information, billing address-mandatory for funded plans) and return URLs (success, cancel, or failure) so that the customer can be redirected back to your site once they have completed the Hosted Form. You can learn more about [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) in the [API Reference](https://developers.splitit.com/api/v3/introduction). ### Redirect to Splitit [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/\#redirect-to-splitit "Direct link to Redirect to Splitit") After receiving a successful [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) response, the parameter `CheckoutUrl` is returned, which contains a unique one-time URL. This URL is valid for one hour (but can be extended on request). It redirects the customer to the Hosted Form Redirect to complete payment. ### Redirect Back From Splitit [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/\#redirect-back-from-splitit "Direct link to Redirect Back From Splitit") Splitit will redirect the customer back to one of the three provided URLs, depending on the outcome of the transaction. (Please refer to [Notes](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#notes) below for more details.) ### Verify Authorization [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/\#verify-authorization "Direct link to Verify Authorization") Before completing the order, you should call [VerifyAuthorization](https://developers.splitit.com/api/v3/verify-authorization) in order to verify that the payment was successful. This prevents unauthorized or faked success URLs and prevents false “order closed” notifications without the payment actually being completed on the Splitit servers. ### Notes [​](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/\#notes "Direct link to Notes") 1. In order to help with order processing, you have the option of receiving values for your _Installment Plan Number_ and _Reference Order Number_ in the redirect querystrings. To receive these, structure the `RedirectUrls` object in your call to [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) as follows: ```codeBlockLines_e6Vv "RedirectUrls": {      "Succeeded": "https://www.success.com/{ipn}/{ref-order-number}",      "Failed": "https://www.fail.com/{ipn}/{ref-order-number}",      "Canceled": "https://www.cancel.com/{ipn}/{ref-order-number}" } ``` 2. Note that in the case of 3DS failure (even with successful card authorization), the user will be directed back to the payment form with an error message, not to the failure URL. 3. In rare cases, an order will be successfully paid for using the Splitit Hosted Form but redirection fails (for example if there is a network problem or merchant server temporary downtime). To combat this, it is recommended that you set the `CreateSucceeded` property (under the `EventsEndpoints` object of the [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) call with a dedicated URL. This URL is a [webhook](https://developers.splitit.com/operational/webhooks/merchant-webhooks) that is called asynchronously from the Splitit server after the plan has been created successfully. By doing this, you can confirm that payment was successful even if redirection fails. 4. If you have decided not to capture the first installment automatically on the creation of the installment plan, you have the option to hold the first charge until a later date (must be within three weeks). This is done by setting `AutoCapture` to `false` in the [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) call. You will need to call [Update Plan by Number](https://developers.splitit.com/api/v3/update-order) or [Update Plan by Alternate Field](https://developers.splitit.com/api/v3/update-order-by-identifier) when you are ready to start the first installment. This request will trigger the first charge. - [Bearer Token](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#bearer-token) - [Initiate an Installment Plan](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#initiate-an-installment-plan) - [Redirect to Splitit](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#redirect-to-splitit) - [Redirect Back From Splitit](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#redirect-back-from-splitit) - [Verify Authorization](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#verify-authorization) - [Notes](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-redirect/#notes)[Skip to main content](https://developers.splitit.com/api/using-keys/signing-requests/#__docusaurus_skipToContent_fallback) On this page You can sign your transactional calls to Splitit's API V3 by providing Splitit with your public key, then signing your messages with your private key. Using your uploaded public key, Splitit can verify that the communication came from you. Things to know: - Supported by API V3 only - A benefit of using signature authentication on your API requests is that no extra logins or tokens are required - For the sake of debugging and support, please preserve the response header _x-splitit-traceid_ ## Instructions [​](https://developers.splitit.com/api/using-keys/signing-requests/\#instructions "Direct link to Instructions") 1. Begin by authenticating to the Splitit ID server, using the instructions [here](https://developers.splitit.com/api/keys/get-splitit-token). You'll receive a bearer token in the response. 2. Add the bearer token from step 1 in your header, then call [Rotate Public Key](https://developers.splitit.com/api/keys/rotate-public-key). The body to send is as follows: ```codeBlockLines_e6Vv { "Type": "RSA", "Usage": [\ "Authentication"\ ], "OwnerCode": "string" // given to you by Splitit support "PublicKey": "{an RSA public key you generated}", "ExpirationUtc": "2024-07-06T15:46:26.409Z", // when you'd like your key to expire (if you don't set this, a default value will be set by Splitit) "RelatedClientId": "string" //the Client ID from your account you'd like to use; given to you by Splitit support } ``` You will get a Key ID as a response ( _UniqueId_). 3. Generate your signature using your private key. As a payload to encrypt, you should concatenate as follows: method;URL;body a. Sections should be separated by semicolons as above b. The method (POST, GET, etc.) should be in all uppercase c. The URL is based on the request url and should be built as follows: - \[host\]\[path\]\[query\] - host - the host address without the port and without "https:" - path - request path with a leading slash - query string (if it exists) - example: "web-api-v3.sandbox.splitit.com/api/installmentplans" d. the body should be converted to a string using a website like [https://jsonformatter.org/](https://jsonformatter.org/) json-stringify-online 4. Make your request to API V3 and add the following headers to it: _X-Splitit-RequestSignature_: the signature you generated in step 3 _X-Splitit-RequestSignature-KeyId_: the Key ID ( _UniqueId_) you received by [registering](https://developers.splitit.com/api/keys/rotate-public-key) your public key in the Key Exchange server (step 2) _X-Splitit-RequestSignature-ClientId_: the Client ID you would like to use (given to you by Splitit support) Note that in this API request for step 4, your method, URL and body should match what you used in step 3 to sign your payload. No additional authentication is required. - [Instructions](https://developers.splitit.com/api/using-keys/signing-requests/#instructions)[Skip to main content](https://developers.splitit.com/category/on-site-messaging/#__docusaurus_skipToContent_fallback) [**📄️Elements** \\ You can read about the available On-Site elements below and test their functionality. Once you have decided on the elements you'd like, make sure to visit the playground to generate your own. You should also read about recommended On-Site Messaging practices in our Integration Guide.](https://developers.splitit.com/on-site-messaging/elements)[**📄️Installation** \\ Add the below script into your \`\` tag, adding your Splitit API key, and specifying language (ISO 639-1), currency (ISO 4217), and environment (i.e. sandbox or production).](https://developers.splitit.com/on-site-messaging/installation)[**📄️Playground and Codegen** \\ In the On-Site Messaging playground below, you can experiment with all element attributes, then copy the resulting code to use on your own site.](https://developers.splitit.com/on-site-messaging/playground)[Skip to main content](https://developers.splitit.com/api/using-keys/encrypting-responses/#__docusaurus_skipToContent_fallback) On this page For additional security, you can require that Splitit's API responses be sent to you in an encrypted format. To accomplish this, Splitit will use your public key to encrypt communication that you can then decrypt with your private key. Things to know: - Only works with API V3 endpoints - Similar to message-level encryption (MLE), responses will arrive in format _application/jose+json_ - For debugging and support, please preserve response headers with _x-splitit-traceid_ ### Instructions [​](https://developers.splitit.com/api/using-keys/encrypting-responses/\#instructions "Direct link to Instructions") 1. Begin by authenticating to the Splitit ID server, using the instructions [here](https://developers.splitit.com/api/keys/get-splitit-token). You'll receive a token in the response. 2. Add the token from step 1 in your header, then call [Rotate Public Key](https://developers.splitit.com/api/keys/rotate-public-key). The body to send is as follows: ```codeBlockLines_e6Vv { "Type": "RSA", "Usage": [\ "ResponseEncryption"\ ], "OwnerCode": "string", // given to you by Splitit support "PublicKey": "string", // An RSA public key you have generated "ExpirationUtc": "2024-07-06T15:46:26.409Z", // When you'd like your key to expire (if you don't set this, a default value will be set by Splitit) "RelatedClientId": "string" // the client from your account you'd like to use, given by Splitit support } ``` You will get a Key Id ( _UniqueId_) in return. 3. You can check that your key was successfully rotated by calling [List All Keys](https://developers.splitit.com/api/keys/list-all-keys). 4. Invoke any API V3 endpoint. The response should be JWE encrypted with the Key Id from step 2 above. Use a tool like [https://jwt.io/](https://jwt.io/) to inspect the JWE headers and verify that the Key Id is the correct one. - [Instructions](https://developers.splitit.com/api/using-keys/encrypting-responses/#instructions)[Skip to main content](https://developers.splitit.com/checkout-solutions/hosted-forms/hosted-form-diagram/#__docusaurus_skipToContent_fallback) ![hosted form flow diagram](https://developers.splitit.com/assets/images/hosted-form-8a447cec79297c416a9480969324eaa1.jpeg)[Skip to main content](https://developers.splitit.com/merchant-hub/dashboard/#__docusaurus_skipToContent_fallback) On this page The Dashboard provides quick visualizations of your plans and other metrics, and also allows you to download the data you see in the visualizations. ## Getting Started [​](https://developers.splitit.com/merchant-hub/dashboard/\#getting-started "Direct link to Getting Started") 1. Set the merchant you’d like to see results for at upper right: ![select merchant](https://developers.splitit.com/assets/images/merchant-selector-dfde3a86e6e0564c35a4a41f09d0fed3.png) **Hierarchical** lets you returns results for multiple merchants (if applicable), while **Single Entity** lets you return results for just one. Once you have made your selection, click **Cancel** or **OK**. 2. Choose the currency you’d like to see results in at upper right: ![currency]() 3. Set the dates you'd like to see data for, and choose your comparison data (used throughout the graphs): You can choose **Today**, **This week**, **This month**, **This year** or **Set a date range** using a calendar. Unless you change the **Compare To** setting on the right, each of these choices automatically uses comparison data one period back (so **Today** shows comparison data from yesterday, **This Week** comparison data from one week ago, **This Month** comparison data from one month ago, and **This Year** comparison data from one year ago). If you’d like change the comparison data to data from one year ago in all cases (except for **This year**), change the **Compare To** box at upper right to **Previous Year**. 4. The dates used are always shown underneath the selection box: ![comparison](https://developers.splitit.com/assets/images/comparison-72489557b7f8df19d4f087fdf8fb42a1.png) 5. Refresh your data periodically at upper right: ![refresh](https://developers.splitit.com/assets/images/refresh-1e9445434461c39246c9edaced295113.png) ## Available Sections [​](https://developers.splitit.com/merchant-hub/dashboard/\#available-sections "Direct link to Available Sections") ### Sales Converted (Payment Plans Started) [​](https://developers.splitit.com/merchant-hub/dashboard/\#sales-converted-payment-plans-started "Direct link to Sales Converted (Payment Plans Started)") This shows all plans that have been started within your chosen timeframe. ![sales converted](https://developers.splitit.com/assets/images/sales-converted-header-6d49b581adf8c854e42f734809a0d242.png) The **Sales Converted** tile shows the total amount in your currency and the number of plans, as well as comparison statistics with the comparison timeframe you selected: Growth between periods is at upper right and the previous period's statistics are at the bottom. #### Amount Visualization [​](https://developers.splitit.com/merchant-hub/dashboard/\#amount-visualization "Direct link to Amount Visualization") Clicking on the **Sales Converted** tiles brings up the **Amount** visualization, showing the comparison timeframe you chose in **Getting Started** in light green. ![sales converted](https://developers.splitit.com/assets/images/sales-converted-8aec5f92f27711d411c64708b0c7e6b2.png) Drag your mouse over the graph to see a popup window with the relevant statistic per day. ![drag mouse](https://developers.splitit.com/assets/images/drag-mouse-433badf1e921398fc85cb833157a50e8.png) Click **Download Report** to get a CSV file with the data from the visualization: ![csv report](https://developers.splitit.com/assets/images/csv-report-5ae9af56350a2ac8eb4532d4e779e385.png) #### Plans Visualization [​](https://developers.splitit.com/merchant-hub/dashboard/\#plans-visualization "Direct link to Plans Visualization") Select the **Plans** tab to see the visualization by plans instead of amount. ![sales converted plans](https://developers.splitit.com/assets/images/sales-converted-plans-112845d8de5221d909cba9003443e9e5.png) As with the **Amount** visualization, you can drag your mouse over the graph to see a popup window with the relevant statistic per day or click **Download Report** to get a CSV file with the data. ### Unsuccessful Plans [​](https://developers.splitit.com/merchant-hub/dashboard/\#unsuccessful-plans "Direct link to Unsuccessful Plans") These are plans that were created but didn't complete successfully (most likely the shopper's card didn't work). The **Unsuccessful Plans** tile shows the total amount in your currency and the number of plans, as well as comparison statistics with the comparison timeframe you selected: Growth between periods is at upper right and the previous period's statistics are at the bottom. ![unsuccessful](https://developers.splitit.com/assets/images/unsuccessful-3162979b26c13468855a8e98acb125e1.png) #### Amount Visualization [​](https://developers.splitit.com/merchant-hub/dashboard/\#amount-visualization-1 "Direct link to Amount Visualization") Clicking on the **Unsuccessful Plans** tile brings up the **Amount** visualization, showing the comparison timeframe you chose in **Getting Started** in light green. ![unsuccessful graph](https://developers.splitit.com/assets/images/unsuccessful-graph-28c1086507fd655ab871ad8ce34c3636.png) Drag your mouse over the graph to see a popup window with the relevant statistic per day. ![drag mouse unsuccess](https://developers.splitit.com/assets/images/drag-mouse-unsuccessful-4efb56d8b14f8dca5de9c813e12c9244.png) Click **Download Report** to get a CSV file with the data from the visualization. #### Count Visualization [​](https://developers.splitit.com/merchant-hub/dashboard/\#count-visualization "Direct link to Count Visualization") Select the **Count** tab to see the visualization by plan count instead of amount. ![unsuccessful count](https://developers.splitit.com/assets/images/unsuccessful-count-e7baeddd5b6189ff47c5f70cd3a9edff.png) As with the **Amount** visualization, you can drag your mouse over the graph to see a popup window with the relevant statistic per day or click **Download Report** to get a CSV file with the data. ### Refunds [​](https://developers.splitit.com/merchant-hub/dashboard/\#refunds "Direct link to Refunds") The **Refunds** tile shows the total refund amount in your currency and the number of plans, as well as comparison statistics with the comparison timeframe you selected: Growth between periods is at upper right. ![dash refunds](https://developers.splitit.com/assets/images/dash-refunds-c99dea049ab600ec07db11cf6a463466.png) #### Amount Visualization [​](https://developers.splitit.com/merchant-hub/dashboard/\#amount-visualization-2 "Direct link to Amount Visualization") Click anywhere in the **Refunds** tile go to the visualization. You can see the comparison timeframe you chose in **Getting Started** in light green. ![refunds visualization](https://developers.splitit.com/assets/images/refunds-viz-4bd3eb4d7a8259e063a70fd11db9e190.png) Drag your mouse over the graph to see a popup window with the relevant statistic per day. ![refunds mouseover](https://developers.splitit.com/assets/images/refunds-mouseover-71348b9ea075ad8580f4cd4e94e969db.png) Click **Download Report** to get a CSV file with the data from the visualization. #### Count Visualization [​](https://developers.splitit.com/merchant-hub/dashboard/\#count-visualization-1 "Direct link to Count Visualization") Select the **Count** tab to see the visualization by plan count instead of amount. ![csv report](https://developers.splitit.com/assets/images/refund-count-b7e1c8b0f444d50274ab7b02ef381c11.png) As with the **Amount** visualization, you can drag your mouse over the graph to see a popup window with the relevant statistic per day or click **Download Report** to get a CSV file with the data. ### Shopper Outstanding Payments [​](https://developers.splitit.com/merchant-hub/dashboard/\#shopper-outstanding-payments "Direct link to Shopper Outstanding Payments") The **Shopper Outstanding Payments** tiles shows the total amount in your currency owed by all of your shoppers on all of your plans. Growth between periods is at upper right. ![shopper outstanding payments](https://developers.splitit.com/assets/images/shopper-outstanding-payments-3efa8b9324308f512464f878e98bff03.png) It does not have a visualization but you can click **Download Report** to get a CSV file with data from the primary period. - [Getting Started](https://developers.splitit.com/merchant-hub/dashboard/#getting-started) - [Available Sections](https://developers.splitit.com/merchant-hub/dashboard/#available-sections) - [Sales Converted (Payment Plans Started)](https://developers.splitit.com/merchant-hub/dashboard/#sales-converted-payment-plans-started) - [Unsuccessful Plans](https://developers.splitit.com/merchant-hub/dashboard/#unsuccessful-plans) - [Refunds](https://developers.splitit.com/merchant-hub/dashboard/#refunds) - [Shopper Outstanding Payments](https://developers.splitit.com/merchant-hub/dashboard/#shopper-outstanding-payments)[Skip to main content](https://developers.splitit.com/category/gateways/#__docusaurus_skipToContent_fallback) [**📄️Connecting Adyen** \\ Connecting Adyen to Splitit requires that you execute support requests and adjust configurations in your Adyen account, then add your Adyen credentials to Splitit.](https://developers.splitit.com/operational/gateways/adyen)[**📄️Connecting Authorize.Net** \\ To use Authorize.Net as your processing gateway with Splitit, you'll need to first collect your Authorize.Net credentials, then add them to your Splitit merchant portal.](https://developers.splitit.com/operational/gateways/authorize)[**📄️Connecting Bluesnap** \\ To use BlueSnap as a processor with Splitit, you will first need to accomplish some tasks in your BlueSnap account: 1. create/fetch your BlueSnap credentials, 2. whitelist some Splitit IPs and 3. set a statement descriptor. Then you'll need to enter your BlueSnap credentials into your Splitit merchant portal.](https://developers.splitit.com/operational/gateways/bluesnap)[**📄️Connecting Worldpay** \\ Connecting Worldpay and Splitit requires that you first adjust settings in your Worldpay admin, then add your Worldpay credentials to Splitit.](https://developers.splitit.com/operational/gateways/worldpay)[**📄️Gateway Tokens** \\ If you are working with certain gateways such as BlueSnap, Authorize.net, PaySafe, or Spreedly, you may wish or need to use a tokenized credit card number instead of a credit card number. See BlueSnap docs, Authorize.net docs, PaySafe docs, or Spreedly docs).](https://developers.splitit.com/operational/gateways/gateway-tokens)[**📄️Required Webhooks Per Gateway** \\ Splitit requires the webhooks that are listed in the table below by gateway. To receive them, add a Splitit endpoint to your gateway's configuration as such:](https://developers.splitit.com/operational/gateways/required-webhooks)[**📄️Soft Descriptors** \\ Soft descriptors can be overridden/configured by the merchant, and they can be used for various purposes such as setting the name of a sub-merchant.](https://developers.splitit.com/operational/gateways/soft-descriptors)[Skip to main content](https://developers.splitit.com/api/ams/partner-profiles-send-invite/#__docusaurus_skipToContent_fallback) # Send Invite Emails ``` POST https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/:profileId/send-invite ``` Instead of inputting merchant partner information yourself, use a merchant partner's email address(es) to send them to a web link with a prefilled form. If the _profileID_ and email address(es) you send the endpoint are valid, the system will create a prefilled form and will send invitations to the email address(es) you provide (if your inputs aren't valid, you will get the appropriate error messages). As with the other endpoints, you must add your bearer token. Note that if you don't have your _profileId_, you can get it by calling [Structure for Add Merchant Partner Requests](https://developers.splitit.com/api/ams/partner-profiles-get-structure) and looking at the end of the _RequestUrlEndpoint_ field in the response. ## Request [​](https://developers.splitit.com/api/ams/partner-profiles-send-invite/\#request "Direct link to Request") ### Path Parameters **profileId**stringrequired - application/json ### Body **required** **Emails** string\[\] ## Responses [​](https://developers.splitit.com/api/ams/partner-profiles-send-invite/\#responses "Direct link to Responses") - 200 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** integerrequired **TraceId** string **IsSuccess** booleanrequired **Url** string ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Url": "string" } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://account-mgmt-system.sandbox.splitit.com/api/v1/partner-profiles/:profileId/send-invite' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "Emails": [\ "string"\ ] }' ``` Request Collapse all Base URL Edit https://account-mgmt-system.sandbox.splitit.com Auth Bearer Token Parameters profileId — pathrequired Body required ``` { "Emails": [\ "string"\ ] } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/keys/generate-key-pair/#__docusaurus_skipToContent_fallback) # Generate Key Pair ``` POST https://key-exchange.sandbox.splitit.com/api/v1/key/generate ``` Generate a dedicated Splitit key pair that you can use to PGP-encrypt traffic sent to Splitit or to verify that a message coming from Splitit is authentic (RSA). In the first scenario, Splitit securely holds the private key half of the pair and you encrypt your outgoing traffic with the public key half. In the second scenario, you use your public key half to verify that Splitit's communication originated at Splitit (Splitit signs with their private key half). - Use to encrypt your sensitive outgoing traffic to Splitit that requires an additional layer of encryption (MLE) - Have Splitit sign reports or other sensitive outgoing traffic so you can verify their authenticity ## Request [​](https://developers.splitit.com/api/keys/generate-key-pair/\#request "Direct link to Request") - application/json ### Body **required** **OwnerCode** stringrequired Given to you by Splitit support, same as _Owner_ in other calls **Type** stringrequired **Possible values:** \[ `RSA`, `PGP`\] **Usage** string\[\]required **Possible values:** \[ `Unknown`, `Reports`, `Authentication`, `MessageLevelEncryption`, `CredentialsDownload`, `ResponseSignature`\] **Length** int32required **ExpirationUtc** date-timerequired **PgpPassPhrase** string **RelatedClientId** string ## Responses [​](https://developers.splitit.com/api/keys/generate-key-pair/\#responses "Direct link to Responses") - 200 - 400 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **UniqueId** string **Key** string **ExpirationUtc** date-time **Algorithm** string ```codeBlockLines_e6Vv { "UniqueId": "string", "Key": "string", "ExpirationUtc": "2024-06-06T16:41:09.086Z", "Algorithm": "string" } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://key-exchange.sandbox.splitit.com/api/v1/key/generate' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "OwnerCode": "string", "Type": "PGP", "Usage": [\ "Unknown"\ ], "Length": 2048, "ExpirationUtc": "2024-07-06T15:46:26.409Z", "PgpPassPhrase": "mypass" }' ``` Request Collapse all Base URL Edit https://key-exchange.sandbox.splitit.com Auth Bearer Token Body required ``` { "OwnerCode": "string", "Type": "PGP", "Usage": [\ "Unknown"\ ], "Length": 2048, "ExpirationUtc": "2024-07-06T15:46:26.409Z", "PgpPassPhrase": "mypass" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/using-keys/encrypting-credentials/#__docusaurus_skipToContent_fallback) On this page For security reasons, your organization may require you to download your credentials from Splitit in a PGP-encrypted format. In order to accomplish this, you will need to provide Splitit with a public key that it can use to encrypt them. You can then decrypt the downloaded credentials on your system with your matching private key. Things to know: - It is recommended that you rotate your key(s) periodically, i.e. every three to six months - Splitit uses the most recent (non-expired) PGP public key on your account to encrypt your credentials (make sure to not have duplicates or empty expiration dates) - The credentials are signed using Splitit's private key assigned to you - For any debugging or support, please preserve the response header _x-splitit-traceid_ ## Instructions [​](https://developers.splitit.com/api/using-keys/encrypting-credentials/\#instructions "Direct link to Instructions") ### Authentication [​](https://developers.splitit.com/api/using-keys/encrypting-credentials/\#authentication "Direct link to Authentication") 1. Begin by authenticating to the Splitit ID server, using the instructions [here](https://developers.splitit.com/api/keys/get-splitit-token). You'll receive a token in the response. ### Provide a Public Key [​](https://developers.splitit.com/api/using-keys/encrypting-credentials/\#provide-a-public-key "Direct link to Provide a Public Key") 2. Add the token from step 1 in your header, then call [Rotate Public Key](https://developers.splitit.com/api/keys/rotate-public-key) and provide a PGP public key that you have generated on your system. The body to send is as follows: ```codeBlockLines_e6Vv { "OwnerCode": "string", // provided by Splitit support "Usage": [\ "ClientCredentials"\ ], "Type": "Pgp", "PublicKey": "{a PGP public key you generated}", "ExpirationUtc": "2024-07-06T15:46:26.409Z" // When you'd like your key to expire (if you don't set this, a default value will be set by Splitit) } ``` 3. Your encrypted and signed credentials should now be downloadable - [Instructions](https://developers.splitit.com/api/using-keys/encrypting-credentials/#instructions) - [Authentication](https://developers.splitit.com/api/using-keys/encrypting-credentials/#authentication) - [Provide a Public Key](https://developers.splitit.com/api/using-keys/encrypting-credentials/#provide-a-public-key)[Skip to main content](https://developers.splitit.com/direct-api/direct-api-diagram/#__docusaurus_skipToContent_fallback) ![](https://developers.splitit.com/assets/images/direct-api-c93169a7f8617448496f55bd09aaf221.jpeg)[Skip to main content](https://developers.splitit.com/category/no-code/#__docusaurus_skipToContent_fallback) [**📄️ Splitit Go ** \\ Start an installment plan using Splitit Go by following the instructions below.](https://developers.splitit.com/category/splitit-go)[Skip to main content](https://developers.splitit.com/direct-api/how-to-add-forter/#__docusaurus_skipToContent_fallback) If you are calling the Splitit APIs directly, you'll need to call Forter for fraud checking. Forter is event based (no longer based on cookies). In order to add Forter you'll need to: - request a Forter token from Splitit [support](mailto:support@splitit.com) - call functions on your frontend to load and listen for Forter: ```codeBlockLines_e6Vv export const loadForter = () => { let script = document.createElement('script'); script.innerText = ` var tagID = "ASK_SPLITIT_TO_GET_YOUR_FORTER_TOKEN"; (function () { var siteId = tagID;; function t(t, e) { for (vars n = t.split(""), r = 0; r < n.length; ++r)n[r] = String.fromCharCode(n[r].charCodeAt(0) + e); return n.join("") } function e(e) { return t(e, -l).replace(/%SN%/g, siteId) } function n(t) { try { S.ex = t, g(S) } catch (e) { } } function r(t, e, n) { var r = document.createElement("script"); r.onerror = n, r.onload = e, r.type = "text/javascript", r.id = "ftr__script", r.async = !0, r.src = "https://" + t; var o = document.getElementsByTagName("script")[0]; o.parentNode.insertBefore(r, o) } function o() { k(T.uAL), setTimeout(i, v, T.uAL) } function i(t) { try { var e = t === T.uDF ? h : m; r(e, function () { try { U(), n(t + T.uS) } catch (e) { } }, function () { try { U(), S.td = 1 * new Date - S.ts, n(t + T.uF), t === T.uDF && o() } catch (e) { n(T.eUoe) } }) } catch (i) { n(t + T.eTlu) } } var a = { write: function (t, e, n, r) { void 0 === r && (r = !0); var o, i; if (n ? (o = new Date, o.setTime(o.getTime() + 24 * n * 60 * 60 * 1e3), i = "; expires=" + o.toGMTString()) : i = "", !r) return void (document.cookie = escape(t) + "=" + escape(e) + i + "; path=/"); var a, c, u; if (u = location.host, 1 === u.split(".").length) document.cookie = escape(t) + "=" + escape(e) + i + "; path=/"; else { c = u.split("."), c.shift(), a = "." + c.join("."), document.cookie = escape(t) + "=" + escape(e) + i + "; path=/; domain=" + a; var s = this.read(t); null != s && s == e || (a = "." + u, document.cookie = escape(t) + "=" + escape(e) + i + "; path=/; domain=" + a) } }, read: function (t) { for (var e = escape(t) + "=", n = document.cookie.split(";"), r = 0; r < n.length; r++) { for (var o = n[r]; " " == o.charAt(0);)o = o.substring(1, o.length); if (0 === o.indexOf(e)) return unescape(o.substring(e.length, o.length)) } return null } }, c = "fort", u = "erTo", s = "ken", d = c + u + s, f = "9"; f += "ck"; var l = 3, h = e("(VQ(1fgq71iruwhu1frp2vq2(VQ(2vfulsw1mv"), m = e("g68x4yj4t5;e6z1forxgiurqw1qhw2vq2(VQ(2vfulsw1mv"), v = 10; window.ftr__startScriptLoad = 1 * new Date; var g = function (t) { var e = function (t) { return t || "" }, n = e(t.id) + "_" + e(t.ts) + "_" + e(t.td) + "_" + e(t.ex) + "_" + e(f); a.write(d, n, 1825, !0) }, p = function () { var t = a.read(d) || "", e = t.split("_"), n = function (t) { return e[t] || void 0 }; return { id: n(0), ts: n(1), td: n(2), ex: n(3), vr: n(4) } }, w = function () { for (var t = {}, e = "fgu", n = [], r = 0; r < 256; r++)n[r] = (r < 16 ? "0" : "") + r.toString(16); var o = function (t, e, r, o, i) { var a = i ? "-" : ""; return n[255 & t] + n[t >> 8 & 255] + n[t >> 16 & 255] + n[t >> 24 & 255] + a + n[255 & e] + n[e >> 8 & 255] + a + n[e >> 16 & 15 | 64] + n[e >> 24 & 255] + a + n[63 & r | 128] + n[r >> 8 & 255] + a + n[r >> 16 & 255] + n[r >> 24 & 255] + n[255 & o] + n[o >> 8 & 255] + n[o >> 16 & 255] + n[o >> 24 & 255] }, i = function () { if (window.Uint32Array && window.crypto && window.crypto.getRandomValues) { var t = new window.Uint32Array(4); return window.crypto.getRandomValues(t), { d0: t[0], d1: t[1], d2: t[2], d3: t[3] } } return { d0: 4294967296 * Math.random() >>> 0, d1: 4294967296 * Math.random() >>> 0, d2: 4294967296 * Math.random() >>> 0, d3: 4294967296 * Math.random() >>> 0 } }, a = function () { var t = "", e = function (t, e) { for (var n = "", r = t; r > 0; --r)n += e.charAt(1e3 * Math.random() % e.length); return n }; return t += e(2, "0123456789"), t += e(1, "123456789"), t += e(8, "0123456789") }; return t.safeGenerateNoDash = function () { try { var t = i(); return o(t.d0, t.d1, t.d2, t.d3, !1) } catch (n) { try { return e + a() } catch (n) { } } }, t.isValidNumericalToken = function (t) { return t && t.toString().length <= 11 && t.length >= 9 && parseInt(t, 10).toString().length <= 11 && parseInt(t, 10).toString().length >= 9 }, t.isValidUUIDToken = function (t) { return t && 32 === t.toString().length && /^[a-z0-9]+$/.test(t) }, t.isValidFGUToken = function (t) { return 0 == t.indexOf(e) && t.length >= 12 }, t }(), T = { uDF: "UDF", uAL: "UAL", mLd: "1", eTlu: "2", eUoe: "3", uS: "4", uF: "9", tmos: ["T5", "T10", "T15", "T30", "T60"], tmosSecs: [5, 10, 15, 30, 60], bIR: "43" }, y = function (t, e) { for (var n = T.tmos, r = 0; r < n.length; r++)if (t + n[r] === e) return !0; return !1 }; try { var S = p(); try { S.id && (w.isValidNumericalToken(S.id) || w.isValidUUIDToken(S.id) || w.isValidFGUToken(S.id)) || (S.id = w.safeGenerateNoDash()), S.ts = window.ftr__startScriptLoad, g(S); var D = new Array(T.tmosSecs.length), k = function (t) { for (var e = 0; e < T.tmosSecs.length; e++)D[e] = setTimeout(n, 1e3 * T.tmosSecs[e], t + T.tmos[e]) }, U = function () { for (var t = 0; t < T.tmosSecs.length; t++)clearTimeout(D[t]) }; y(T.uDF, S.ex) ? o() : (k(T.uDF), setTimeout(i, v, T.uDF)) } catch (F) { n(T.mLd) } } catch (F) { } })()`; script.id = 'ASK_SPLITIT_TO_GET_YOUR_FORTER_TOKEN'; document.documentElement.appendChild(script); }; export const listenForForter = () => { const callback = (evt: any) => { const forterToken = evt?.detail; // forterToken should be sent inside Tags : { forterToken } as part of Create endpoint }; document.addEventListener('ftr:tokenReady', callback); return () => document.removeEventListener('ftr:tokenReady', callback); }; export const loadAndListenForForter = () => { loadForter(); return listenForForter(); }; // Use the snippet loadAndListenForForter(), which returns a function that removes the event listener and should be used when page unloads. ```[Skip to main content](https://developers.splitit.com/category/operational/#__docusaurus_skipToContent_fallback) [**🗃️Gateways** \\ 7 items](https://developers.splitit.com/category/gateways)[**🗃️Webhooks** \\ 2 items](https://developers.splitit.com/category/webhooks)[Skip to main content](https://developers.splitit.com/category/platform-plugins/#__docusaurus_skipToContent_fallback) [**🗃️Shopify** \\ 2 items](https://developers.splitit.com/category/shopify)[**🗃️WooCommerce** \\ 2 items](https://developers.splitit.com/category/woocommerce)[**📄️BigCommerce** \\ Use the instructions below to enable the Splitit installments payment option in the payment and checkout experience on your BigCommerce site, along with messaging that will introduce your customers to installment payment options early in their shopping experience.](https://developers.splitit.com/platform-plugins/bigcommerce)[**📄️Magento** \\ Use the instructions below to enable the Splitit installments payment option in the payment and checkout experience on your Magento site, along with messaging that will introduce your customers to installment payment options early in their shopping experience.](https://developers.splitit.com/platform-plugins/magento)[**📄️Wix** \\ Use the instructions below to enable the Splitit installments payment option in the payment and checkout experience on your Wix site, along with messaging that will introduce your customers to installment payment options early in their shopping experience.](https://developers.splitit.com/platform-plugins/wix)[**📄️Salesforce CC** \\ Use the guides below to enable the Splitit installments payment option in the payment and checkout experience on your Salesforce site, along with messaging that will introduce your customers to installment payment options early in their shopping experience.](https://developers.splitit.com/platform-plugins/salesforce-cc)[**📄️SAP Commerce Cloud** \\ Use the instructions below to enable the Splitit installments payment option in the payment and checkout experience on your SAP Commerce Cloud site, along with messaging that will introduce your customers to installment payment options early in their shopping experience.](https://developers.splitit.com/platform-plugins/sap-commerce-cloud)[Skip to main content](https://developers.splitit.com/api/v3/check-eligibility/#__docusaurus_skipToContent_fallback) # Check Eligibility ``` POST https://web-api-v3.sandbox.splitit.com/api/installmentplans/check-eligibility ``` As your customer begins to checkout, use this endpoint to verify their overall eligibility for Splitit installment plans and to determine plans for which they are eligible. This endpoint can be called repeatedly before and during checkout, for example you may call it after each field on a page is filled out. The Splitit API compares and updates the plan based on each new body as it arrives. ## Request [​](https://developers.splitit.com/api/v3/check-eligibility/\#request "Direct link to Request") ### Header Parameters **X-Splitit-IdempotencyKey**string **X-Splitit-Idempotency-Behaviour**string **Possible values:** \[ `DisableReprocessingOnError`, `AllowReprocessingOnError`\] AllowReprocessingOnError is the default, which means that if you have a failed response or a timeout, the original request is marked as having failed, but a new request can be sent using the same key and will be reprocessed; if you set it to DisableReprocessingOnError, a request with the same key will not be reprocessed after a failure, and if the key is used again, you will get the same error response you got the first time - application/json ### Body **PlanData** object required **TerminalId** stringrequired The merchant terminal identifier **TotalAmount** decimalrequired The order total amount **FirstInstallmentAmount** decimal **Currency** stringrequired **NumberOfInstallments** int32required **PurchaseMethod** string **Possible values:** \[ `InStore`, `PhoneOrder`, `ECommerce`\] How purchase was made (default is `ECommerce`) **RefOrderNumber** string Reference order number for merchant's use **AllowedInstallmentOptions** int32\[\] **Tags** object **property name\*** string **FirstInstallmentDate** date-time **CardDetails** object **CardHolderFullName** string **CardNumber** string **CardExpYear** string **CardExpMonth** string **CardCvv** string **CardBrand** string **Possible values:** \[ `Mastercard`, `Visa`, `AmericanExpress`, `Maestro`, `JCB`, `CUP`, `UPI`, `Discover`, `Other`\] **CardType** string **Possible values:** \[ `Credit`, `Debit`, `Charge`, `Other`, `Prepaid`, `VisaDeferredDebit`, `NetworkOnly`\] **BillingAddress** object **AddressLine** string **AddressLine2** string **City** string **Country** string ISO 3166 Country name OR 2-character code OR 3-character code **State** string ISO 3166-2 State **Zip** string ## Responses [​](https://developers.splitit.com/api/v3/check-eligibility/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-511 - 400-542 - 400-563 - 400-564 - 400-599 - 400-806 Success - application/json - Schema - Example (from schema) **Schema** **InstallmentProvider** string Either "Splitit" or "Visa" **PaymentPlanOptions** object\[\] Array \[\ \ **NumberOfInstallments** int32required\ \ **FirstInstallmentAmount** decimalrequired\ \ **InstallmentAmount** decimalrequired\ \ **LastInstallmentAmount** decimalrequired\ \ **Links**\ object\ \ **PrivacyPolicyUrl** string\ \ **TermsAndConditionsUrl** string\ \ **LearnMoreUrl** string\ \ **TermsAndConditionsBrief** string\ \ Terms and conditions text set by external provider\ \ **InstallmentFrequency** string\ \ The interval of the installments, either monthly or biweekly\ \ \] ```codeBlockLines_e6Vv { "InstallmentProvider": "string", "PaymentPlanOptions": [\ {\ "NumberOfInstallments": 0,\ "FirstInstallmentAmount": 0,\ "InstallmentAmount": 0,\ "LastInstallmentAmount": 0,\ "Links": {\ "PrivacyPolicyUrl": "string",\ "TermsAndConditionsUrl": "string",\ "LearnMoreUrl": "string"\ },\ "TermsAndConditionsBrief": "string",\ "InstallmentFrequency": "string"\ }\ ] } ``` Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Resource Does Not Exist: For all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Server Error : Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidAmount: Invalid amount sent, such as below your minimum amount or above your maximum amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCCCardBrandNotSupported: Sorry but we do not accept this type of credit card. Please use \[\[SupportedCardBrands\]\] to complete your purchase. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidCurrency\_NotSupportedByTerminal: Sorry, but this currency is not currently accepted at this terminal. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` CreditCardIsMissing: Some information is missing. Please enter all requested credit card details. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` TerminalApiKeyMissing: Terminal ID not found. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/check-eligibility' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "PlanData": { "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "TotalAmount": 50.25, "FirstInstallmentAmount": 25.12, "Currency": "USD", "NumberOfInstallments": 2, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder123" }, "BillingAddress": { "Country": "USA", "State": "NY", "Zip": "12345" }, "PaymentMethod": { "Type": "Card", "Card": { "CardNumber": "1234123412341234" }, "ApplePay": {}, "GooglePay": {}, "PaySafe": {}, "BlueSnap": {}, "Splitit": {} } }' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters Show optional parameters X-Splitit-IdempotencyKey — header X-Splitit-Idempotency-Behaviour — header \-\-\-DisableReprocessingOnErrorAllowReprocessingOnError Body ``` { "PlanData": { "TerminalId": "b628b9a4-4c21-4691-97c4-c9f8da665a60", "TotalAmount": 50.25, "FirstInstallmentAmount": 25.12, "Currency": "USD", "NumberOfInstallments": 2, "PurchaseMethod": "Ecommerce", "RefOrderNumber": "MerchantOrder123" }, "BillingAddress": { "Country": "USA", "State": "NY", "Zip": "12345" }, "PaymentMethod": { "Type": "Card", "Card": { "CardNumber": "1234123412341234" }, "ApplePay": {}, "GooglePay": {}, "PaySafe": {}, "BlueSnap": {}, "Splitit": {} } } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/back-office/issuer-portal-reports/#__docusaurus_skipToContent_fallback) On this page If you have an issuer relationship your Splitit, you will be given access to an Issuer Portal, where you can view and download reports related to: - new plans - plans with outstanding amounts - plans at risk - plans with collect events Follow the instructions below to access your reports. ## View Report Data [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#view-report-data "Direct link to View Report Data") ### Access Reports Section [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#access-reports-section "Direct link to Access Reports Section") After logging into your [Issuer Portal](https://issuer-portal.sandbox.splitit.com/), select **Reports** from the left-hand-side menu. ### Select Report Type [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#select-report-type "Direct link to Select Report Type") From the dropdown, select your desired report type (descriptions are next to each type). ![select report type](https://developers.splitit.com/assets/images/select-report-type-384bd4b3e3f102c49b1f3e15c0367422.png) ### Choose Dates [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#choose-dates "Direct link to Choose Dates") Select the desired dates for your report, using either a time frame or a calendar. **A. Time Frame** Specify a time frame, whether **Day**, **Week**, **Month**, **Quarter**, or **Year**, and specify whether you'd like to see the **Previous** period or the **Current** one. ![select timeframe](https://developers.splitit.com/assets/images/select-timeframe-88a2e3d48096c4c2ad123558497b1aee.png) **B. Calendar** Choose dates using the calendar picker. ![select columns](https://developers.splitit.com/assets/images/select-calendar-bcae11f46c4b91b6728a47c9d178b86d.png) After selecting your dates, click **Save** (or **Clear** to exit). Notes regarding dates and the _At Risk Plans_ Report: - Results are returned for entire months at a time, and to get data for any given month, you need to _include its first day_ in your selection - Remember that you will receive data for plans that were at risk _during the timeframe you selected_, they are not necessarily still at risk today ### Choose Columns [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#choose-columns "Direct link to Choose Columns") Next select the Columns you'd like to see: you can choose to display **All,** choose **Default** (a selection of the columns most people find useful), or choose the **See columns list** popup, which lets you set **Custom**. ![columns selection](https://developers.splitit.com/assets/images/columns-selection-8f6ec91ce1b10ae5dbe8ffe887537831.png) **See Columns List Popup** In the **See Columns List** popup, add columns using the check boxes. ![see columns list popup](https://developers.splitit.com/assets/images/select-columns-bd854ab907492f9e8a975b5faa69385a.png) When you finished, make sure to click **Save** or **Clear** to exit. ### Preview Data [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#preview-data "Direct link to Preview Data") Finally, click **Get Sample** in the upper-right-hand corner to view the data in your browser. ![preview sample data](https://developers.splitit.com/assets/images/preview-sample-data-fb39d7b0bb2c1728a8f47510f272f801.png) ## Download Report Data [​](https://developers.splitit.com/back-office/issuer-portal-reports/\#download-report-data "Direct link to Download Report Data") After you have viewed your report data, you can download it by selecting **Export Report**, which is next to **Get Sample** in the upper-right-hand corner. ![select columns](https://developers.splitit.com/assets/images/export-reports-button-e28d00b8d11216bec60f4e6b6dc2217c.png) Choose from the available file types, then click **Download**. ![select columns](https://developers.splitit.com/assets/images/download-format-types-acaacbe44559d4d5b410b4ce9a311ed9.png) - [View Report Data](https://developers.splitit.com/back-office/issuer-portal-reports/#view-report-data) - [Access Reports Section](https://developers.splitit.com/back-office/issuer-portal-reports/#access-reports-section) - [Select Report Type](https://developers.splitit.com/back-office/issuer-portal-reports/#select-report-type) - [Choose Dates](https://developers.splitit.com/back-office/issuer-portal-reports/#choose-dates) - [Choose Columns](https://developers.splitit.com/back-office/issuer-portal-reports/#choose-columns) - [Preview Data](https://developers.splitit.com/back-office/issuer-portal-reports/#preview-data) - [Download Report Data](https://developers.splitit.com/back-office/issuer-portal-reports/#download-report-data)[Skip to main content](https://developers.splitit.com/api/keys/get-splitit-token/#__docusaurus_skipToContent_fallback) # Get Splitit Token ``` POST https://id.sandbox.splitit.com/connect/token ``` Authenticate using your _client\_id_ and _client\_secret_ from your [merchant portal](https://merchant.sandbox.splitit.com/) (Splitit support will also have to enable key server access for you). You can authenticate directly in the _Request_ box on this page (at right). For _grant\_type_, enter _client\_credentials_, for _scope_ type enter _keyexchange.api_, then enter your _client\_id_ and _client\_secret_. Scroll down and press _SEND API REQUEST_. In the response, copy your _access\_token_, which you can use to execute the other endpoints in this API reference. - Note that unlike the other endpoints, your authentication payload should use the format _application/x-www-form-urlencoded_. ## Request [​](https://developers.splitit.com/api/keys/get-splitit-token/\#request "Direct link to Request") - application/x-www-form-urlencoded ### Body **required** **grant\_type** string i.e. client\_credentials **scope** string i.e. keyexchange.api **client\_id** string e.g. APIUser000032201 **client\_secret** string e.g. sU9tOVHOcM6jPOjjWZpXZs4V0cmc01BZfChF5afrj71Dz2COn2 ## Responses [​](https://developers.splitit.com/api/keys/get-splitit-token/\#responses "Direct link to Responses") - 200 Success - application/json - Schema - Example (from schema) **Schema** **access\_token** string The bearer token to add to your header **expires\_in** integer How long token will last **token\_type** string Type of token **scope** string The scope granted to your request ```codeBlockLines_e6Vv { "access_token": "string", "expires_in": 0, "token_type": "string", "scope": "string" } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L -X POST 'https://id.sandbox.splitit.com/connect/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Accept: application/json' ``` Request Collapse all Base URL Edit https://id.sandbox.splitit.com/connect Body required grant\_type scope client\_id client\_secret Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/category/woocommerce/#__docusaurus_skipToContent_fallback) [**📄️WooCommerce** \\ Use the instructions below to enable the Splitit installments payment option in the payment and checkout experience on your WooCommerce site, along with messaging that will introduce your customers to installment payment options early in their shopping experience.](https://developers.splitit.com/platform-plugins/woocommerce)[**📄️Onboarding WooCommerce to VIS Installments** \\ If you are a VIS Installments for WooCommerce merchant:](https://developers.splitit.com/platform-plugins/woocommerce-visa)[Skip to main content](https://developers.splitit.com/back-office/funding/#__docusaurus_skipToContent_fallback) On this page # Payment Models (Merchant Types) Splitit offers two payment models: **Core** and **Managed**. **Core** plans pay you your portion each time your shopper makes a payment during the lifecycle of a plan, using your designated processor [(see list)](https://developers.splitit.com/operational/gateways/required-webhooks). **Managed** plans pay you in full shortly after plans are generated (less fees), and Splitit is the only provider you’ll need: We fund you and we provide detailed reporting and shopper-relationship management throughout the lifecycle of the plan—thus essentially requiring nothing more from your end. ## Core [​](https://developers.splitit.com/back-office/funding/\#core "Direct link to Core") The **Core** plan model is normally utilized by merchants that have adequate free cash flow and thus are willing to take a longer DSO (Days Sales Outstanding) in exchange for a lower transactional price. Note that **Core** plans require more invoicing transactions than **Managed** plans (both from your processor and from Splitit), so they also entail a slightly heavier accounting workload. Under **Core**, you get paid after each shopper installment. So once a Splitit plan is initiated, you will receive a payment each time a shopper makes an installment payment—until the full amount is paid. The diagram below shows the payment schedule for an example **Core** plan covering a $1000 purchase that will be paid in four installments by the shopper, 30 days apart. (Fees to Splitit are paid separately via invoice 30 days after the respective installments). ![core plan](https://developers.splitit.com/assets/images/core-diag-17a0b7a90da71b1667ee4dc9fa5efede.png) ## Managed [​](https://developers.splitit.com/back-office/funding/\#managed "Direct link to Managed") With **Managed** plans, you receive the full amount of your shopper's purchase on day one (minus fees), and Splitit handles everything else for the remainder of the plan—collecting from the shopper and reporting the details to you. Essentially, after plan initiation, you can sit back and let Splitit handle all remaining administrative and accounting duties, as there will be nothing more for you to do. The diagram below shows the payment schedule for an example **Managed** plan covering a $1000 purchase to be paid in four installments by the shopper, 30 days apart. Fees are deducted from the total payment that you receive from Splitit at the beginning of the plan. ![managed plan](https://developers.splitit.com/assets/images/splitit-managed-17685b7c401edebfea1a054d8b09a764.png) - [Core](https://developers.splitit.com/back-office/funding/#core) - [Managed](https://developers.splitit.com/back-office/funding/#managed)[Skip to main content](https://developers.splitit.com/category/account-management-system-api/#__docusaurus_skipToContent_fallback) [**📄️Introduction** \\ The Account Management System API features endpoints that let you onboard your own merchant partner accounts. Note that before utilizing this API, you must have worked with Splitit to define and understand the required data you'll need to create your merchant partners. Once you have done that, proceed to the \[Guide\](/api/ams/guide).](https://developers.splitit.com/api/ams/introduction)[**📄️Guide** \\ Follow the steps below to onboard your own merchant partner accounts by API. You have two choices of flow, one that only uses API calls, whereby you provide the data for your merchant partners, and one that uses a form, in which case your merchant partners input their data.](https://developers.splitit.com/api/ams/guide)[**📄️Get Splitit Token** \\ Authenticate using your \*client\_id\* and \*client\_secret\* from your \[merchant portal\](https://merchant.sandbox.splitit.com) (Splitit support will also have to enable AMS API access for you).](https://developers.splitit.com/api/ams/get-splitit-token)[**📄️Structure for Add Merchant Partner Requests** \\ Using your bearer token to authenticate, fetch the fields that you will need to complete an \[Add Merchant Partner\](/api/ams/partner-profiles-create-dynamic) request. (Note that these fields have been previously agreed upon between you and Splitit.) In addition, note that the \[response's\](/api/ams/guide#2-view-the-required-format-for-your-add-requests) \*RequestUrlEndpoint\* here includes the full URL (including \*profileID\*) that you will need to add new merchants using the \[Add Merchant Partner\](/api/ams/partner-profiles-create-dynamic) endpoint.](https://developers.splitit.com/api/ams/partner-profiles-get-structure)[**📄️Add Merchant Partner** \\ Use this endpoint to add a new merchant to your account by providing information for the fields that were returned in the object from \[Structure for Add Merchant Partner Requests\](/api/ams/partner-profiles-get-structure). As before, authenticate with your bearer token. Note that you can receive ongoing webhooks related to onboarding status by adding your desired URL to the \`OnboardingInitialSetup\` object](https://developers.splitit.com/api/ams/partner-profiles-create-dynamic)[**📄️Upload Documents** \\ Use this endpoint to upload documents to Splitit (e.g., agreements) for partners or merchants. You can add multiple documents at once. Authentication is by bearer token.](https://developers.splitit.com/api/ams/partner-profiles-upload-files)[**📄️Send Invite Emails** \\ Instead of inputting merchant partner information yourself, use a merchant partner's email address(es) to send them to a web link with a prefilled form. If the \*profileID\* and email address(es) you send the endpoint are valid, the system will create a prefilled form and will send invitations to the email address(es) you provide (if your inputs aren't valid, you will get the appropriate error messages). As with the other endpoints, you must add your bearer token. Note that if you don't have your \*profileId\*, you can get it by calling \[Structure for Add Merchant Partner Requests\](/api/ams/partner-profiles-get-structure) and looking at the end of the \*RequestUrlEndpoint\* field in the response.](https://developers.splitit.com/api/ams/partner-profiles-send-invite)[**📄️Get Onboarding Status** \\ Call this endpoint to get the onboarding status of an account you added. You can add multiple documents at once. Authenticate with your bearer token.](https://developers.splitit.com/api/ams/partner-profiles-get-account-details)[Skip to main content](https://developers.splitit.com/api/v3/refund/#__docusaurus_skipToContent_fallback) # Refund a Plan ``` POST https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber/refund ``` Refund part or all of an installment plan. Things to know: - If you fully refund the plan before its first charge/capture, the plan will be completely canceled (note that `AutoCapture` would have been set to `false` in your [Initiate](https://developers.splitit.com/api/v3/initiate-installment-plan) or [Create](https://developers.splitit.com/api/v3/installment-plan) call, so the plan wasn't immediately charged) - If you supply a service on a monthly basis, and you or the shopper elect to stop the subscription, you can perform a partial refund with the outstanding amount as `Amount` in the request ### Strategies [​](https://developers.splitit.com/api/v3/refund/\#strategies "Direct link to Strategies") There are several refund strategies you can choose when refunding a plan (note that the default is `FutureInstallmentsFirst`): - `FutureInstallmentsFirst`: At first customer isn’t refunded any installment money that they have already paid. Instead their refund lessens the amount of future installments they will be debited for, beginning with the next installment that is due. However, if their refund exceeds the amount of money they have left to pay (all installments), only then is the refund taken out of the installment money they have already paid - `FutureInstallmentsLast`: Customer is refunded beginning with the installment money they have already paid. If their refund amount exceeds the amount they have already paid, their amount of future installments due gets decreased, beginning with the next installment due and then proceeding to the later ones - `FutureInstallmentsNotAllowed`: Customer is only refunded from installment money that they have already paid, not from any future installments that they have due - `ReduceFromLastInstallment`: This is the same as `FutureInstallmentsFirst`, except that the refund is credited starting with the last installment first (e.g., number 6 of 6, as opposed to number 2 of 6). ## Request [​](https://developers.splitit.com/api/v3/refund/\#request "Direct link to Request") ### Path Parameters **installmentPlanNumber**stringrequired ### Header Parameters **X-Splitit-IdempotencyKey**string - application/json ### Body **Amount** decimalrequired **RefundStrategy** string **Possible values:** \[ `FutureInstallmentsFirst`, `FutureInstallmentsLast`, `FutureInstallmentsNotAllowed`, `ReduceFromLastInstallment`\] **ReferenceId** string optional merchant-specified descriptor ## Responses [​](https://developers.splitit.com/api/v3/refund/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 422 - 500 - 400-511 - 400-562 - 400-578 - 400-594 - 400-599 - 400-640 - 400-1041 - 400-5911 Success - application/json - Schema - Example (from schema) **Schema** **RefundId** string **InstallmentPlanNumber** string **Currency** string **NonCreditRefundAmount** decimal **CreditRefundAmount** decimal **Summary** object **TotalAmount** decimal **FailedAmount** decimal **SucceededAmount** decimal **PendingAmount** decimal ```codeBlockLines_e6Vv { "RefundId": "string", "InstallmentPlanNumber": "string", "Currency": "string", "NonCreditRefundAmount": 0, "CreditRefundAmount": 0, "Summary": { "TotalAmount": 0, "FailedAmount": 0, "SucceededAmount": 0, "PendingAmount": 0 } } ``` Token is not authorized or is expired - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Plan or service does not exist; for all APIs, if an invalid plan number is passed in the URL, this error will be returned - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` Server encountered an unexpected condition - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidAmount: Invalid amount sent, such as below your minimum amount or above your maximum amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` RefundRequestedAmountExceededPlanRefundableAmount: The refund amount requested exceeded the plan's refundable amount. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidPlanStrategy: We are sorry for the inconvenience, but this plan is not available. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` FraudDetected: Sorry, but we were unable to process your payment. Please reach out to our customer support team at [support@splitit.com](mailto:support@splitit.com). - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` General Error: Sorry. There has been an error. Please try again. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` GtwyMerchantDataProblem: Sorry, but there has been a processing error with this merchant. Please contact our support for assistance. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` IdempotencyHashMismatchError: Same Idempotency key with different payload identified. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` InvalidInternalUrlSentToOms: Plan is not in the correct state to process this request. - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://web-api-v3.sandbox.splitit.com/api/installmentplans/:installmentPlanNumber/refund' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "Amount": 1200, "RefundStrategy": "FutureInstallmentsFirst", "ReferenceId": "abc123" }' ``` Request Collapse all Base URL Edit https://web-api-v3.sandbox.splitit.com/api/installmentplans Auth Bearer Token Parameters installmentPlanNumber — pathrequired Show optional parameters X-Splitit-IdempotencyKey — header Body ``` { "Amount": 1200, "RefundStrategy": "FutureInstallmentsFirst", "ReferenceId": "abc123" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/chargebacks/introduction/#__docusaurus_skipToContent_fallback) Version: 1.0.0 # Introduction The Chargebacks API allows merchants to manage open disputes via API, rather in the [Merchant Portal](https://merchant.splitit.com/) (which has identical functionality). The Chargebacks API provides endpoints to accept chargebacks (decline to fight them), get information about chargebacks, submit and delete evidence for chargebacks, and submit and delete comments for chargebacks. Things to know- - A merchant is allowed to perform activities on chargebacks that are associated with its merchant id only - Splitit support needs to enable the proper scope for you to use this API - Each Splitit API request requires HTTPS and must include a Splitit token attached as a bearer header - Each Splitit API request with a body should also include the header parameter `Content-Type = application/json` - PUT/POST requests may include an idempotency key in the header list to ensure that operations are not duplicated - Response headers include Splitit trace ids that can be used for support purposes ## Authentication [​](https://developers.splitit.com/api/chargebacks/introduction/\#authentication "Direct link to Authentication") - HTTP: Bearer Auth | Security Scheme Type: | http | | HTTP Authorization Scheme: | bearer |[Skip to main content](https://developers.splitit.com/api/chargebacks/create-a-chargeback/#__docusaurus_skipToContent_fallback) # Create a Chargeback ``` POST https://chargebacks.sandbox.splitit.com/api/chargebacks/ ``` Merchants with the proper permissions can create a chargeback in the Splitit system (you may want to do this, for example, if you received notice of a chargeback from your processor). Created chargebacks have _Open_ status. ## Request [​](https://developers.splitit.com/api/chargebacks/create-a-chargeback/\#request "Direct link to Request") - application/json ### Body **required** **ChargebackCreationDate** date-time Optional, if not set, gets set to current time. Only dates less than or equal to now should be used, and should be in UTC format, e.g. "2024-04-29T14:33:44.613Z" **RefDisputeId** stringrequired Merchant reference id given for this dispute **DueDateForEvidence** date-time Due date for submitting evidence for this dispute. Should be in UTC format, e.g. "2024-04-29T14:33:44.613Z" **InstallmentPlanNumber** stringrequired Associated installment plan number. Optional if `RefOrderNumber` is specified **RefOrderNumber** stringrequired Optional if `InstallmentPlanNumber` is specified **Amount** numberrequired Chargeback amount **Currency** stringrequired Chargeback currency, e.g. _USD_, _AUD_, _CAD_, _EUR_, _GBP_, _JPY_, _SGD_ **ReasonCode** stringrequired Chargeback reason code. See [codes](https://developers.splitit.com/merchant-portal/chargebacks/chargebacks-core#codes) **TransactionSplititReference** stringrequired This is the merchant reference that comes from the processor with the chargeback notification. It includes a Splitit reference number from the relevant capture operation. ## Responses [​](https://developers.splitit.com/api/chargebacks/create-a-chargeback/\#responses "Direct link to Responses") - 200 - 401 - 403 - 404 - 500 **Response Headers** - application/json - Schema - Example (from schema) **Schema** **Errors** object\[\] Array \[\ \ **Code** string\ \ **Message** string\ \ **AdditionalInfo** string\ \ \] **StatusCode** int32required **TraceId** string **IsSuccess** booleanrequired **Chargeback** object required **Id** stringrequired **DisputeCreatedDate** date-timerequired **DueDate** date-timerequired **InstallmentPlanNumber** stringrequired **InstallmentNumber** int64required **PlanStatus** stringrequired **TransactionId** stringrequired **MerchantName** stringrequired **TotalPlanAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **DisputeAmount** object required **Amount** numberrequired **CurrencyCode** stringrequired **Status** DisputeStatus (string)required **Possible values:** \[ `Open`, `Won`, `Lost`, `Closed`, `Other`, `Pending`\] **PlanActivatedDate** date-time **ReasonCode** stringrequired **Evidences** object\[\] required Array \[\ \ **EvidenceId** stringrequired\ \ **UploadedAt** date-timerequired\ \ **FileName** stringrequired\ \ **FileType** stringrequired\ \ \] **Comments** object\[\] required Array \[\ \ **CommentId** stringrequired\ \ **Text** stringrequired\ \ **CommentAt** date-timerequired\ \ \] ```codeBlockLines_e6Vv { "Errors": [\ {\ "Code": "string",\ "Message": "string",\ "AdditionalInfo": "string"\ }\ ], "StatusCode": 0, "TraceId": "string", "IsSuccess": true, "Chargeback": { "Id": "string", "DisputeCreatedDate": "2024-06-06T16:41:09.406Z", "DueDate": "2024-06-06T16:41:09.406Z", "InstallmentPlanNumber": "string", "InstallmentNumber": 0, "PlanStatus": "string", "TransactionId": "string", "MerchantName": "string", "TotalPlanAmount": { "Amount": 0, "CurrencyCode": "string" }, "DisputeAmount": { "Amount": 0, "CurrencyCode": "string" }, "Status": "Open", "PlanActivatedDate": "2024-06-06T16:41:09.406Z", "ReasonCode": "string", "Evidences": [\ {\ "EvidenceId": "string",\ "UploadedAt": "2024-06-06T16:41:09.406Z",\ "FileName": "string",\ "FileType": "string"\ }\ ], "Comments": [\ {\ "CommentId": "string",\ "Text": "string",\ "CommentAt": "2024-06-06T16:41:09.406Z"\ }\ ] } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` **Response Headers** - application/json - Schema - Example (from schema) **Schema** **TraceId** string **Error** object **Code** string **Message** string **AdditionalInfo** string **ExtraData** object **property name\*** string ```codeBlockLines_e6Vv { "TraceId": "string", "Error": { "Code": "string", "Message": "string", "AdditionalInfo": "string", "ExtraData": {} } } ``` - curl - python - go - nodejs - ruby - csharp - php - java - powershell - CURL ```openapi-explorer__code-block-lines openapi-explorer__code-block-lines-numbering curl -L 'https://chargebacks.sandbox.splitit.com/api/chargebacks/' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "ChargebackCreationDate": "2024-04-29T14:33:44.613Z", "RefDisputeId": "abc123", "DueDateForEvidence": "2024-04-29T14:33:44.613Z", "InstallmentPlanNumber": "55550340112478783510", "RefOrderNumber": "abc123", "Amount": "78.00", "Currency": "USD", "ReasonCode": "13.1", "TransactionSplititReference": "2024032385031300000510000539931" }' ``` Request Collapse all Base URL Edit https://chargebacks.sandbox.splitit.com Auth Bearer Token Body required ``` { "ChargebackCreationDate": "2024-04-29T14:33:44.613Z", "RefDisputeId": "abc123", "DueDateForEvidence": "2024-04-29T14:33:44.613Z", "InstallmentPlanNumber": "55550340112478783510", "RefOrderNumber": "abc123", "Amount": "78.00", "Currency": "USD", "ReasonCode": "13.1", "TransactionSplititReference": "2024032385031300000510000539931" } ``` Send API Request ResponseClear Click the `Send API Request` button above and see the response here![Skip to main content](https://developers.splitit.com/api/using-keys/MLE-for-encrypting-requests/#__docusaurus_skipToContent_fallback) On this page You may wish to completely encrypt the content of the communications you send to Splitit. You can achieve this with message-level encryption (MLE). With MLE, you encrypt your communications using Splitit's public key, which Splitit then decrypts on the other end with the corresponding private key. Things to note: - MLE only works with API V3 - For the sake of debugging and support, please note and preserve response headers with _x-splitit-traceid_ ## Instructions [​](https://developers.splitit.com/api/using-keys/MLE-for-encrypting-requests/\#instructions "Direct link to Instructions") 1. Begin by authenticating to the Splitit ID server, using the instructions [here](https://developers.splitit.com/api/keys/get-splitit-token). You'll receive a bearer token in the response. 2. Attach the bearer token to your header and then [generate a key pair](https://developers.splitit.com/api/keys/generate-key-pair) using the Key Exchange API and the following body: ```codeBlockLines_e6Vv { "OwnerCode": "string", //given to you by Splitit support "Type": "RSA", "Length": 2048, "Usage": ["MessageLevelEncryption"], "ExpirationUtc": "2024-07-06T15:46:26.409Z" // when you'd like your key to expire (if you don't set this, a default value will be set by Splitit) } ``` You will receive a Key ID and a Splitit public key in response. 3. Use JWE and the public key to encrypt your communication, making sure to use the RSA-OAEP-256 algorithm for encryption. Your message bodies should be formatted according to the [JWE standard](https://datatracker.ietf.org/doc/html/rfc7516) and should include your Key ID from step 2 under the header _kid_. 4. Send your encrypted message to an endpoint on Splitit's API V3, making sure to add the header: _Content-Type: application/jose+json_. - [Instructions](https://developers.splitit.com/api/using-keys/MLE-for-encrypting-requests/#instructions)