Quickstart - Invalid or missing data

This section shows examples of errors that occur after the request has been successfully validated against the JSON schema.

Such type of errors will be responded with code = ValidationError.

Questions are posted with incorrect IDs and mandatory questions are missing

The below request contains the following errors:

Paste the below JSON sample request in the Postman Body field.

Example POST /merchants request with invalid questionId:

{
   "name":"BS-28122017_Scenario_1_1",
   "legalName":"BS-28122017_Scenario_1_1",
   "legalForm":"PrivateCompany",
   "merchantCategoryCode":"0742",
   "incorporationDate":"2017-08-30",
   "incorporationNumber":"Test",
   "taxNumber":"Test",
   "baseCurrencyCode":"EUR",
   "estimatedMonthlyVolumeInEUR":"5",
   "estimatedNumberOfTransactionsPerMonth":"15",
   "lowestAmountPerTransactionInEUR":"1",
   "highestAmountPerTransactionInEUR":"1",
   "averageAmountPerTransactionInEUR":"1",
   "partnerId":"CAAB26D2-6E46-E911-A82D-000D3AB18D29",
   "companyPhoneNumber":"12345",
   "companyFaxNumber":"789090",
   "licenseNumber":"123456",
   "incorporationAddress":{
      "street":"TestStreet 1",
      "city":"TestCity",
      "postalCode":"1010",
      "country":"AT"
   },
   "operationAddress":{
      "street":"TestStreet 1",
      "city":"TestCity",
      "postalCode":"1010",
      "country":"AT"
   },
   "paymentMethodConfig":{
      "cardDeposit":{
         "cardAcceptanceMode":"POS",
         "useAccountStatusInquiry":"true"
      }
   },
   "shops":[
      {
         "name":"Shop1",
         "cardAcceptanceMode":"CNP",
         "countryCode":"AT",
         "url":"http://test.com",
         "billingDescriptor1":"bill 1",
         "billingDescriptor2":"bill 2",
         "domainOwnership":"Own",
         "activationState":"LiveAcceptingCards",
         "volumeSpread":{
            "ecom":"25",
            "moto":"25",
            "recurring":"50"
         },
         "questionAnswerPairs":[
            {
               "questionId":"Unknown",
               "answer":"Answer"
            }
         ]
      }
   ],
   "relatedPeople":[
      {
         "roles":[
           "Signatory",
           "Owner",
           "TechnicalContact",
            "OperationalContact"
         ],
         "firstname":"TestFirstName",
         "lastname":"TestLastName",
         "dateOfBirth":"2000-08-30",
         "email":"[email protected]",
         "skypeName":"testskypename",
         "phoneNumber":"31231414",
         "shareOrOwnershipPercentage":"5",
         "passportOrGovernmentNumber":"12345",
         "address":{
            "street":"TestStreet 1",
            "city":"TestCity",
            "postalCode":"1010",
            "country":"AT"
         }
      }
   ],
   "relatedCompanies":[
      {
         "roles":[
            "Owner"
         ],
         "incorporationAddress":{
            "street":"Test street 1",
            "city":"TestCity",
            "postalCode":"1010",
            "country":"AT"
         },
         "name":"RelatedCompany",
         "taxnumber":"1234",
         "incorporationDate":"2007-01-01",
         "incorporationNumber":"ABC12345",
         "ShareOrOwnershipPercentage":"3"
      }
   ],
   "questionAnswerPairs":[
      
   ]
}

Example POST /merchants response with errors and HTTP status code 400 - Bad Request:

{
   "code":"MultipleErrors",
   "message":"Request validation failed.",
   "moreInfo":"https://developer.kalixa.com/v1.0/reference#payment-service-v6-overview",
   "details":[
      {
         "code":"ValidationError",
         "message":"An error occurred validating business rules for shop.",
         "moreInfo":"https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-shops",
         "details":{
            "fieldName":"Questions",
            "fieldValue":"The question 'Unknown' was not found in the list of allowed questions."
         }
      },
      {
         "code":"ValidationError",
         "message":"An error occurred validating business rules for merchant.",
         "moreInfo":"https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-merchants",
         "details":{
            "fieldName":"Questions",
            "fieldValue":"Required questions: NoLicenseOrAuthorizationNumberProvided. Missing questions: NoLicenseOrAuthorizationNumberProvided."
         }
      },
      {
         "code":"ValidationError",
         "message":"An error occurred validating business rules for merchant.",
         "moreInfo":"https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-merchants",
         "details":{
            "fieldName":"Merchant",
            "fieldValue":"The field 'deliveryOrFulfillmentTimeframe' is required."
         }
      },
      {
         "code":"ValidationError",
         "message":"An error occurred validating business rules for merchant.",
         "moreInfo":"https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-merchants",
         "details":{
            "fieldName":"Questions",
            "fieldValue":"Required questions: BusinessModelDescription, CurrentAcquirers, LengthOfAcquirerRelationship. Missing questions: BusinessModelDescription, CurrentAcquirers, LengthOfAcquirerRelationship."
         }
      },
      {
         "code":"ValidationError",
         "message":"An error occurred validating business rules for merchant.",
         "moreInfo":"https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-merchants",
         "details":{
            "fieldName":"BankAccount",
            "fieldValue":"If the partner is not a payment facilitator, at least one bank account must be provided."
         }
      },
      {
         "code":"ValidationError",
         "message":"An error occurred validating business rules for shop.",
         "moreInfo":"https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-shops",
         "details":{
            "fieldName":"Questions",
            "fieldValue":"Required questions: ActivityDescription, CancellationTimeframe, RecurringSubscriptionDescription, RefundsTimeframe, URLOwnership, WebsitePassword, WebsiteUsername. Missing questions: ActivityDescription, CancellationTimeframe, RecurringSubscriptionDescription, RefundsTimeframe, URLOwnership, WebsitePassword, WebsiteUsername."
         }
      }
   ]
}

Volume Spread

In this example, the values provided in volumeSpread do not sum up to 100. This rule is described in Conditional Validation.

Use the below JSON sample request in the Postman Body field.

Example POST /merchants request with incorrect values provided for volumeSpread:

{
   "name":"This is name of the Merchant",
   "legalName":"This is LegalName of the Merchant",
   "legalForm":"PrivateCompany",
   "merchantCategoryCode":"7994",
   "pciLevel":"1",
   "incorporationDate":"2008-12-31",
   "incorporationNumber":"IncorporationNumber AB111AB111AB111AB111AB111AB111",
   "taxNumber":"TaxNumber AB111AB111",
   "baseCurrencyCode":"GBP",
   "estimatedMonthlyVolumeInEUR":10000,
   "lowestAmountPerTransactionInEUR":15,
   "highestAmountPerTransactionInEUR":500,
   "averageAmountPerTransactionInEUR":50,
   "estimatedNumberOfTransactionsPerMonth":1001,
   "isStartUp":true,
   "isChargebackOrFraudAnalysisProcessInPlace":true,
   "isRegulatedByAMLGuideline":true,
   "settlementCurrencies":[
      "EUR",
      "GBP",
      "USD",
      "UAH"
   ],
   "paymentMethodConfig":{
      "cardDeposit":{
         "useAccountStatusInquiry":true
      }
   },
   "incorporationAddress":{
      "street":"This is Street of IncorporationAddress with house number 99/1/2",
      "city":"This is City of IncorporationAddress",
      "postalCode":"PostalCode-IncorpAdd",
      "country":"AT"
   },
   "operationAddress":{
      "street":"a",
      "city":"b",
      "postalCode":"c",
      "country":"DE"
   },
   "billingAddress":{
      "street":"This is Street of BillingAddress with house number 99/1/2",
      "city":"This is City of BillingAddress",
      "postalCode":"PostalCode-BillAdd",
      "country":"GB"
   },
   "fraudRatiosForThePastMonths":[
      {
         "cardScheme":"Visa",
         "months":[
            "1.01",
            "1.2",
            "1.33"
         ]
      },
      {
         "cardScheme":"Mastercard",
         "months":[
            "0.21",
            "0.22",
            "0.23"
         ]
      }
   ],
   "chargebackCountRatiosForThePastMonths":[
      {
         "cardScheme":"Visa",
         "months":[
            1,
            2,
            100.00
         ]
      },
      {
         "cardScheme":"Mastercard",
         "months":[
            "0",
            "99.42",
            "99.43"
         ]
      }
   ],
   "companyPhoneNumber":"+431234567890-1",
   "licenseOrAuthorizationNumber":"A1884B1111-01",
   "businessLicenseExpirationDate":"2026-10-25",
   "deliveryOrFulfillmentTimeframe":"UpTo7",
   "vatNumber":"12B34567890def-",
   "partnerId":"CAAB26D2-6E46-E911-A82D-000D3AB18D29",
   "shops":[
      {
         "name":"This is a name of Shop1",
         "cardAcceptanceMode":"CNP",
         "isMotoOnlyBusiness":false,
         "url":"www.shop1.320c909b-d7d6-42eb-a4a6-8707c6735b35.com",
         "domainOwnership":"Own",
         "activationState":"LiveAcceptingCards",
         "countryCode":"AT",
         "billingDescriptor1":"Shop 1",
         "billingDescriptor2":"Vienna",
         "volumeSpreadByProcessing":{
            "ecom":24,
            "moto":15,
            "recurring":26
         },
         "volumeSpreadByRegion":{
            "northAmerica":19,
            "europeanEconomicArea":20,
            "asia":21,
            "latinAmerica":5,
            "others":5
         },
         "volumeSpreadByScheme":{
            "visa":25,
            "mastercard":11,
            "others":65
         },
         "questionAnswerPairs":[
            {
               "questionId":"ActivityDescription",
               "answer":"Answer to ActivityDescription"
            },
            {
               "questionId":"CancellationTimeframe",
               "answer":"Answer to CancellationTimeframe"
            },
            {
               "questionId":"CustomerAccounts",
               "answer":"Answer to CustomerAccounts"
            },
            {
               "questionId":"RecurringSubscriptionDescription",
               "answer":"Answer to RecurringSubscriptionDescription"
            },
            {
               "questionId":"RefundsTimeframe",
               "answer":"Answer to RefundsTimeframe"
            },
            {
               "questionId":"SeasonalActivity",
               "answer":"Answer to SeasonalActivity"
            },
            {
               "questionId":"URLOwnership",
               "answer":"Answer to URLOwnership"
            },
            {
               "questionId":"WebsitePassword",
               "answer":"Answer to WebsitePassword"
            },
            {
               "questionId":"WebsiteUsername",
               "answer":"Answer to WebsiteUsername"
            }
         ]
      }
   ],
   "relatedPeople":[
      {
         "roles":[
            "Owner",
            "Shareholder",
            "DirectorOrExecutive",
            "UltimateBeneficiary",
            "OperationalContact",
            "TechnicalContact"
         ],
         "firstname":"This is first name of person 1",
         "lastname":"This is last name of person 1",
         "address":{
            "street":"This is Street of address of related person 1",
            "city":"This is City of address of related person 1",
            "postalCode":"PostalCode-AddPer1",
            "country":"AT"
         },
         "phoneNumber":"+43(0)68220405289",
         "dateOfBirth":"2000-08-30",
         "skypeName":"This is skype name of person 1",
         "email":"[email protected]",
         "shareOrOwnershipPercentage":10,
         "passportOrGovernmentNumber":"Passport Number of Person 1: 1633PY-111Z",
         "passportOrGovernmentIDExpirationDate":"2027-10-25",
         "isListedOnPEP":false
      }
   ],
   "relatedCompanies":[
      {
         "roles":[
            "Owner",
            "ExclusiveOwner",
            "Shareholder",
            "UltimateBeneficiary",
            "ExclusiveShareholder"
         ],
         "name":"This is name of related company 1",
         "incorporationAddress":{
            "street":"This is Street of address of related company 1",
            "city":"This is City of address of related company 1",
            "postalCode":"PostalCode-AddCom1",
            "country":"GB"
         },
         "taxNumber":"ATU99999978",
         "incorporationDate":"2005-11-22",
         "incorporationNumber":"U4567UP1234234",
         "shareOrOwnershipPercentage":25
      }
   ],
   "bankAccounts":[
      {
         "bankName":"Erste bank",
         "accountNumber":"779466558",
         "bankCode":"60000",
         "countryCode":"DE",
         "currencyCode":"EUR",
         "holderName":"This is LegalName of the Merchant",
         "iban":"DE93450800604936569200",
         "bic":"BCITITMM300"
      }
   ],
   "questionAnswerPairs":[
      {
         "questionId":"AML&CTF_Guidance",
         "answer":"Answer to AML&CTF_Guidance"
      },
      {
         "questionId":"BusinessModelDescription",
         "answer":"Answer to BusinessModelDescription"
      },
      {
         "questionId":"CardProcessingHistory",
         "answer":"Answer to CardProcessingHistory"
      },
      {
         "questionId":"ChargebackFraudContact",
         "answer":"Answer to ChargebackFraudContact"
      },
      {
         "questionId":"ChargebackFraudProcess",
         "answer":"Answer to ChargebackFraudProcess"
      },
      {
         "questionId":"CurrentAcquirers",
         "answer":"Answer to CurrentAcquirers"
      },
      {
         "questionId":"CustomersPhoneAddress",
         "answer":"Answer to CustomersPhoneAddress"
      },
      {
         "questionId":"CVVCompulsory",
         "answer":"Answer to CVVCompulsory"
      },
      {
         "questionId":"Is3DSecureMandatory",
         "answer":"Answer to Is3DSecureMandatory"
      },
      {
         "questionId":"Is3DSEnabled",
         "answer":"Answer to Is3DSEnabled"
      },
      {
         "questionId":"LengthOfAcquirerRelationship",
         "answer":"Answer to LengthOfAcquirerRelationship"
      },
      {
         "questionId":"MLRO_Contact",
         "answer":"Answer to MLRO_Contact"
      },
      {
         "questionId":"NoLicenseOrAuthorizationNumberProvided",
         "answer":"Answer to NoLicenseOrAuthorizationNumberProvided"
      },
      {
         "questionId":"ReasonForNewAcquirer",
         "answer":"Answer to ReasonForNewAquirer"
      },
      {
         "questionId":"TimeAcceptingCards",
         "answer":"Answer to TimeAcceptingCards"
      },
      {
         "questionId":"VerifyCustomer",
         "answer":"Answer to VerifyCustomer"
      }
   ]
}

Example POST /merchants response with a list of missing answers and HTTP status code 400 - Bad Request:

{
    "code": "MultipleErrors",
    "message": "Request validation failed.",
    "moreInfo": "https://developer.kalixa.com/v1.0/reference#payment-service-v6-overview",
    "details": [
        {
            "code": "ValidationError",
            "message": "An error occurred validating business rules for shop.",
            "moreInfo": "https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-shops",
            "details": {
                "fieldName": "VolumeSpreadByProcessing",
                "fieldValue": "VolumeSpreadByProcessing must add up to 100. Current sum is 65."
            }
        },
        {
            "code": "ValidationError",
            "message": "An error occurred validating business rules for shop.",
            "moreInfo": "https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-shops",
            "details": {
                "fieldName": "VolumeSpreadByRegion",
                "fieldValue": "VolumeSpreadByRegion must add up to 100. Current sum is 70."
            }
        },
        {
            "code": "ValidationError",
            "message": "An error occurred validating business rules for shop.",
            "moreInfo": "https://developer.kalixa.com/v1.0/docs/conditionally-mandatory-parameters#section-shops",
            "details": {
                "fieldName": "VolumeSpreadByScheme",
                "fieldValue": "VolumeSpreadByScheme must add up to 100. Current sum is 101."
            }
        }
    ]
}