CoP Webhooks

Banked sends a webhook notification when a Confirmation of Payee (CoP) verification completes or fails. This allows your system to react immediately to the verification result without polling the API.

This guide covers:

  1. CoP Webhook Events: Overview of the webhook events
  2. Payload Examples: Example payloads for each verification outcome

CoP Webhook Events

Banked sends the following events when a CoP verification finishes:

Event TypeDescription
payment_instrument_bank_account_verification_completedSent when a CoP verification completes with a match, close_match or no_match result
payment_instrument_bank_account_verification_failedSent when a CoP verification cannot be completed, for example if the service is unavailable

Subscribe to both events to receive every outcome. For a completed verification, check details.verification.details.result to determine the match outcome. For a failed verification, check details.verification.latest_error.

The payloads omit sensitive data: the identifier, account_owner_name and registered_account_owner_names. Retrieve the payment instrument to see them.

New to Webhooks? Start with our Webhook Overview to understand how to set up and handle webhooks effectively.


Payload Examples

Examples are provided below for each outcome.

Verification Completed: Match

json
{
  "id": "3a7e0e66-3b15-496a-8948-458a0a50488e",
  "type": "payment_instrument_bank_account_verification_completed",
  "version": "v3",
  "data_version": 1,
  "data": {
    "payment_instrument_id": "c3f87070-c2d8-4dbd-8943-7e280fc4c8fb",
    "on_behalf_of": "customer",
    "mode": "live",
    "created_at": "2025-12-02T16:34:00.000000Z",
    "updated_at": "2025-12-02T16:35:01.987654Z",
    "status": "active",
    "details": {
      "instrument_type": "bank_account",
      "currency": "AUD",
      "verification": {
        "status": "completed",
        "verified_at": "2025-12-02T16:35:01.987654Z",
        "details": {
          "method": "cop",
          "result": "match",
          "can_receive_npp_payments": true,
          "can_send_npp_payments": true
        }
      }
    }
  }
}

Verification Completed: Close Match

Retrieve the payment instrument to review the registered_account_owner_names against the account_owner_name provided:

json
{
  "id": "7095c887-b186-4f9a-8788-2128d4ab5303",
  "type": "payment_instrument_bank_account_verification_completed",
  "version": "v3",
  "data_version": 1,
  "data": {
    "payment_instrument_id": "c3f87070-c2d8-4dbd-8943-7e280fc4c8fb",
    "on_behalf_of": "customer",
    "mode": "live",
    "created_at": "2025-12-02T16:34:00.000000Z",
    "updated_at": "2025-12-02T16:35:05.123456Z",
    "status": "active",
    "details": {
      "instrument_type": "bank_account",
      "currency": "AUD",
      "verification": {
        "status": "completed",
        "verified_at": "2025-12-02T16:35:05.123456Z",
        "details": {
          "method": "cop",
          "result": "close_match",
          "can_receive_npp_payments": true,
          "can_send_npp_payments": true
        }
      }
    }
  }
}

Verification Completed: No Match

json
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "payment_instrument_bank_account_verification_completed",
  "version": "v3",
  "data_version": 1,
  "data": {
    "payment_instrument_id": "c3f87070-c2d8-4dbd-8943-7e280fc4c8fb",
    "on_behalf_of": "customer",
    "mode": "live",
    "created_at": "2025-12-02T16:34:00.000000Z",
    "updated_at": "2025-12-02T16:35:08.654321Z",
    "status": "active",
    "details": {
      "instrument_type": "bank_account",
      "currency": "AUD",
      "verification": {
        "status": "completed",
        "verified_at": "2025-12-02T16:35:08.654321Z",
        "details": {
          "method": "cop",
          "result": "no_match",
          "can_receive_npp_payments": true,
          "can_send_npp_payments": true
        }
      }
    }
  }
}

Do not proceed with a payout when a no_match result is received. Confirm the recipient's account details before retrying. See the CoP Verification Results guide for recommended actions.


Verification Failed

Banked sends the payment_instrument_bank_account_verification_failed event, with status set to failed, when the verification cannot be completed. Check latest_error.code for the cause:

json
{
  "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "type": "payment_instrument_bank_account_verification_failed",
  "version": "v3",
  "data_version": 1,
  "data": {
    "payment_instrument_id": "c3f87070-c2d8-4dbd-8943-7e280fc4c8fb",
    "on_behalf_of": "customer",
    "mode": "live",
    "created_at": "2025-12-02T16:34:00.000000Z",
    "updated_at": "2025-12-02T16:35:10.000000Z",
    "status": "active",
    "details": {
      "instrument_type": "bank_account",
      "currency": "AUD",
      "verification": {
        "status": "failed",
        "verified_at": "2025-12-02T16:35:10.000000Z",
        "details": {
          "method": "cop"
        },
        "latest_error": {
          "code": "ACCOUNT_VERIFICATION_SERVICE_UNAVAILABLE",
          "message": "Account verification service unavailable"
        }
      }
    }
  }
}

For a full list of error codes, see Verification Errors.


Next Steps

© 2026 Banked Ltd.

Dark Theme
PrivacyTerms