PROPAY_FAILURE Event

This webhook event is sent when a ProPay account provisioning operation fails. This includes failed onboarding operations, document sync failures, and account update errors.

When This Event Is Sent

  • The endpoint propay.execute is used, and the execution fails.
  • A user performs an ProPay execution from the Underwriters Dashboard, and the execution fails.

Decrypted Data Parameters

This event includes all default parameter for version 1.0 in the decrypted data parameter, plus the following parameters:

ParameterTypeRequiredDescription
provisioning_dataobjectYesComplete ProPay provisioning entity data including error details. See ProPay Parameters below.

ProPay Parameters

The provisioning_data object contains the complete ProPay provisioning entity state, identical to the response from propay.get.

For detailed documentation of all fields in the provisioning_data object, refer to the propay.get endpoint documentation.

Check the errors array within execution_results for specific failure details.

Example Payload

Note: This example shows the decrypted payload. When you receive this webhook, the data field will be encrypted. See the encryption reminder for details.

{
  "id": "wh_6U4dhjfgkl81qrIOB7x1Vr",
  "event_type": "PROPAY_FAILURE",
  "timestamp": "2026-03-18T22:23:54Z",
  "account_id": "account_id",
  "schema_version": "2025-11-21",
  "key_id": "whk_20260318_03",
  "data": {
    "version": "1.0",
    "subject_record_id": "sr_GSzoEGoF63eKZ4Ei9OiPg",
    "workflow_id": "w_4FbPhGDZU3BiHh7YBBYUJE",
    "workflow_type": "ACCOUNT_PROVISIONING",
    "user_context": {
      "user_id": "SYSTEM",
      "user_type": "SYSTEM"
    },
    "provisioning_data": {
      "provisioning_type": "PROPAY",
      "provisioning_sponsor": "GLOBAL_PAYMENTS",
      "status": "ACTIVE",
      "propay_id": "ape_4xdRzdeWHgjOOqTZuANBNg",
      "created_at": "2026-03-09T07:43:32.442Z",
      "updated_at": "2026-03-09T07:43:32.693Z",
      "execution_results": [
        {
          "errors": [
            {
              "code": "PROPAY_VALIDATION_ERROR",
              "message": "Invalid Routing Number"
            }
          ],
          "status": "FAILED",
          "started_at": "2026-03-18T22:23:52.313Z",
          "finished_at": "2026-03-18T22:23:53.209Z",
          "operation_id": "apo_1QmXK5Ij8IWovu9xIJZtVA",
          "operation_type": "onboarding",
          "provider_response": {
            "code": "46",
            "details": {
              "Tier": "Test",
              "Status": "46",
              "Password": "[REDACTED]",
              "KYCResponse": null,
              "SourceEmail": "[email protected]",
              "AccountNumber": 0,
              "CreditCheckConsent": null,
              "BeneficialOwnerDataResult": [
                {
                  "Status": "NotValidated",
                  "LastName": "Anderson",
                  "FirstName": "Travis"
                },
                {
                  "Status": "NotValidated",
                  "LastName": "Roberts",
                  "FirstName": "Nathan"
                }
              ],
              "GatewayBoardingResultData": []
            },
            "message": "Invalid Routing Number",
            "external_reference_id": 0
          }
        }
      ]
    }
  }
}

Error Handling

When you receive a PROPAY_FAILURE event:

  1. Check the status field in provisioning_data (may be ACTIVE even with failed operations)
  2. Examine the execution_results array for operation-specific errors
  3. Review the errors array within each execution result for detailed error information
  4. Use error codes and provider response to determine the appropriate remediation action
  5. Consider calling propay.get to retrieve the latest entity state if needed