Merchant Compliance Transition

Manages all webhooks related to merchant compliance

When to use it? When running compliance for a Merchant, it will transition through different statuses. This webhook will allow you to update Toqios Merchants accordingly when running compliance outside of our platform.

Available Statuses

  • PENDING_KYB_DATA: Business Entity compliance data is not submitted yet or needs revision. If previousStatus is PENDING_KYB_RESULTS ,meaning that an open process needs some revision, pendingKYBDataItems must not be empty.

  • PENDING_KYB_RESULTS: Business Entity compliance data is submitted and waiting for results. Important: The previous compliance status must be PENDING_KYB_DATA to be able to move to this status.

  • COMPLETED: Business entity has been accepted, meaning all compliance checks have passed positively, this webhook will complete it's compliance process also completing and accepting compliance for all it's documents, administrators and setting the Merchant in a Pending Account status. At this stage, a user with permissions to do so, can create the first account for that Merchant and approved provider. Important: The compliance process must have started and be in PENDING_KYB_RESULTS, to be able to complete it. A merchant with a not started compliance process can't complete compliance.

  • DECLINED: The business entity is not compliant with the requirements. If it has been declined, meaning the compliance checks have resulted in a negative decision, this web-hook will decline it's compliance process also declining compliance for all it's administrators and setting the Merchant in a DECLINED status. Important: The compliance process must have started and be in PENDING_KYB_RESULTS, to be able to decline it. A merchant with a not started compliance process can't decline.

Note: Ids must follow UUIv7 format and should be unique per request. Identical requests will be ignored.

Note: The merchantId expected is the Toqio Merchant id.

Note: previousStatus field will keep track of what previousStatuses are expected to be but, the final check will be done in Toqios DB with the current status of the merchant.

webhookType: MERCHANT_COMPLIANCE_TRANSITION

Model

{  
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
      "notEmpty": true
    },
    "provider": {
      "type": "string",
      "notEmpty": true
    },
    "merchantId": {
      "type": "string",
      "notEmpty": true
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING_KYB_DATA",
        "PENDING_KYB_RESULTS",
        "COMPLETED",
        "DECLINED"
      ],
      "notEmpty": true
    },
    "previousStatus": {
      "type": "string",
      "enum": [
        "PENDING_KYB_DATA",
        "PENDING_KYB_RESULTS",
        "COMPLETED",
        "DECLINED"
      ],
      "notEmpty": false
    },
    "declinedReason": {
      "type": "string",
      "notEmpty": false
    },
    "pendingKYBDataItems": {
      "type": "array",
      "notEmpty": false,
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": ["BUSINESS_DETAILS", "SUPPORTING_DOCUMENTS", "SHAREHOLDERS", "OTHER"]
          },
          "reasonCode": {
            "type": "string",
            "enum": [
              "MISSING_FIELD",
              "INVALID_FORMAT",
              "INCONSISTENT_INFORMATION",
              "DOCUMENT_MISSING",
              "DOCUMENT_EXPIRED",
              "DOCUMENT_ILLEGIBLE",
              "DOCUMENT_TYPE_NOT_SUPPORTED",
              "DOCUMENT_ALTERATION_SUSPECTED",
              "DOCUMENT_NOT_CERTIFIED",
              "DOCUMENT_MISMATCH",
              "BANK_ACCOUNT_VERIFICATION_FAILED",
              "COUNTRY_NOT_SUPPORTED",
              "TRANSLATION_REQUIRED",
              "ADDITIONAL_INFORMATION_REQUIRED",
              "DUPLICATE_SUBMISSION",
              "OTHER"
            ]
          }
        },
        "required": ["type", "reasonCode"]
      }
    }
}

Example

{
  "id": "018a3c96-4f9f-7b9b-9333-2e97b94e27af",
  "provider": "MY_COMPLIANCE_PROVIDER",
  "merchantId": "67a24300c4r9af70f863fb12",
  "status": "PENDING_KYB_RESULTS",
	"previousStatus": "PENDING_KYB_DATA",
	"declinedReason": null
}
{
    "merchantId": "67a24300c4r9af70f863fb12",
    "provider": "MY_COMPLIANCE_PROVIDER",
    "previousStatus": "PENDING_KYB_RESULTS",
    "status": "PENDING_KYB_DATA",
    "id": "354324c3-3543-79ef-9a8b-ac29ae424477",
    "pendingKYBDataItems": [{
        "type": "SUPPORTING_DOCUMENTS",
        "reasonCode": "DOCUMENT_EXPIRED"
    },
    {
        "type": "BUSINESS_DETAILS",
        "reasonCode": "INVALID_FORMAT"
    },{
        "type": "OTHER",
        "reasonCode": "INCONSISTENT_INFORMATION"
    }
    ]
}