Available Events

Complete list of webhook events available in Koard.

Transaction Events

Koard sends webhook events for all transaction lifecycle changes, enabling real-time monitoring and integration with your systems.

transaction.created

Triggered when a new transaction is created (initial tap or API call).

{
  "event": "transaction.created",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor_mid": "5289003",
    "processor_tid": "5289003",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "device_id": "0b3b1ec9210ffa18c7f53ce4a915e1653da4b14113259d1d31ec674c14e2c232",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "location_id": "11efaf2f-2b69-40ee-9da1-19ef826d5fed",
    "gateway_transaction_id": "BG6RJZHK8Q",
    "subtotal": 0,
    "tip_amount": 0,
    "tip_type": "percentage",
    "tax_amount": 0,
    "tax_rate": 0,
    "total_amount": 545,
    "surcharge_applied": false,
    "surcharge_amount": 0,
    "surcharge_rate": 0,
    "refunded": 0,
    "reversed": 0,
    "created_at": 1753985520000,
    "status": "authorized",
    "status_reason": "approved",
    "payment_method": "contactlessIcc",
    "card_type": "MasterCard",
    "card_brand": "MasterCard",
    "card": "541333******4111",
    "transaction_type": "auth",
    "apple_transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "reader_identifier": "0b3b1ec9210ffa18c7f53ce4a915e1653da4b14113259d1d31ec674c14e2c232",
    "owner_id": "0c214fba-5bb6-460a-afed-935a8b52f702",
    "parent_account_ids": [
      "bf692281-0052-4515-a7fb-da3633841049",
      "0c214fba-5bb6-460a-afed-935a8b52f702"
    ],
    "merchant_name": "",
    "gateway_transaction_response": {
      "type": "sale",
      "status": "pending",
      "currency": "USD",
      "approvalCode": "522841",
      "responseCode": "A",
      "responseMessage": "APPROVAL",
      "authorizedAmount": 545,
      "processorResponseCode": "00"
    },
    "processor_response_code": "A",
    "processor_response_message": "APPROVAL"
  }
}

transaction.authorized

Triggered when a transaction is authorized.

{
  "event": "transaction.authorized",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "total_amount": 545,
    "status": "authorized",
    "status_reason": "approved",
    "transaction_type": "auth",
    "gateway_transaction_response": {
      "type": "sale",
      "status": "pending",
      "currency": "USD",
      "approvalCode": "522841",
      "responseCode": "A",
      "responseMessage": "APPROVAL",
      "authorizedAmount": 545,
      "processorResponseCode": "00"
    },
    "processor_response_code": "A",
    "processor_response_message": "APPROVAL",
    "authorized_at": 1753985520000
  }
}

transaction.captured

Triggered when a transaction is captured.

{
  "event": "transaction.captured",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "total_amount": 545,
    "status": "captured",
    "status_reason": "approved",
    "transaction_type": "sale",
    "gateway_transaction_response": {
      "type": "sale",
      "status": "ready",
      "currency": "USD",
      "approvalCode": "522841",
      "responseCode": "A",
      "responseMessage": "APPROVAL",
      "authorizedAmount": 545,
      "processorResponseCode": "00"
    },
    "processor_response_code": "A",
    "processor_response_message": "APPROVAL",
    "captured_at": 1753985620000
  }
}

transaction.refunded

Triggered when a transaction is refunded.

{
  "event": "transaction.refunded",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "total_amount": 545,
    "refunded": 545,
    "status": "refunded",
    "status_reason": "approved",
    "transaction_type": "refund",
    "gateway_transaction_response": {
      "type": "sale",
      "status": "complete",
      "currency": "USD",
      "approvalCode": "522841",
      "responseCode": "A",
      "responseMessage": "APPROVAL",
      "authorizedAmount": 545,
      "processorResponseCode": "00"
    },
    "processor_response_code": "A",
    "processor_response_message": "APPROVAL",
    "refunded_at": 1753985720000
  }
}

transaction.reversed

Triggered when a transaction is reversed.

{
  "event": "transaction.reversed",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "total_amount": 545,
    "reversed": 545,
    "status": "reversed",
    "status_reason": "approved",
    "transaction_type": "reverse",
    "gateway_transaction_response": {
      "type": "sale",
      "status": "reversal",
      "currency": "USD",
      "approvalCode": "522841",
      "responseCode": "A",
      "responseMessage": "APPROVAL",
      "authorizedAmount": 545,
      "processorResponseCode": "00"
    },
    "processor_response_code": "A",
    "processor_response_message": "APPROVAL",
    "reversed_at": 1753985820000
  }
}

transaction.adjusted

Triggered when a transaction amount is adjusted (incremental auth or modification).

{
  "event": "transaction.adjusted",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "previous_amount": 5000,
    "total_amount": 7000,
    "adjustment_amount": 2000,
    "status": "authorized",
    "status_reason": "approved",
    "transaction_type": "auth",
    "adjusted_at": 1753985720000
  }
}

transaction.cancelled

Triggered when a transaction is cancelled (full reversal or refund to 0).

{
  "event": "transaction.cancelled",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "total_amount": 5000,
    "status": "cancelled",
    "status_reason": "voided",
    "cancelled_at": 1753985920000
  }
}

transaction.settled

Triggered when a transaction is settled by the processor.

{
  "event": "transaction.settled",
  "data": {
    "transaction_id": "d7fa08cf-9c29-4629-96ae-921c226c32cf",
    "event_id": "C55A7E4B-DD7C-4CFA-A59D-303156F78F5F",
    "mid": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "tid": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "processor": "tsys",
    "gateway": "sierra",
    "currency": "USD",
    "total_amount": 5000,
    "batch_id": "batch_1234567890",
    "status": "settled",
    "settled_at": 1753986020000
  }
}

Account Events

account.created

Triggered when a new account is created.

{
  "event": "account.created",
  "data": {
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "name": "Test Merchant Account",
    "status": "active",
    "created_at": 1753985520000
  }
}

account.updated

Triggered when account information is updated.

{
  "event": "account.updated",
  "data": {
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "updated_fields": ["settings", "status"],
    "status": "active",
    "updated_at": 1753985520000
  }
}

account.deleted

Triggered when an account is deleted (soft delete).

{
  "event": "account.deleted",
  "data": {
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "deleted_at": 1753985620000
  }
}

account.restored

Triggered when a deleted account is restored.

{
  "event": "account.restored",
  "data": {
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "restored_at": 1753985720000
  }
}

Terminal Events

terminal.created

Triggered when a new terminal is created.

{
  "event": "terminal.created",
  "data": {
    "terminal_id": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "location_id": "11efaf2f-2b69-40ee-9da1-19ef826d5fed",
    "processor": "tsys",
    "gateway": "sierra",
    "processor_mid": "5289003",
    "processor_tid": "5289003",
    "status": "active",
    "created_at": 1753985520000
  }
}

terminal.updated

Triggered when terminal configuration is updated.

{
  "event": "terminal.updated",
  "data": {
    "terminal_id": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "updated_fields": ["processor_config", "status"],
    "status": "active",
    "updated_at": 1753985620000
  }
}

terminal.deleted

Triggered when a terminal is deleted (soft delete).

{
  "event": "terminal.deleted",
  "data": {
    "terminal_id": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "deleted_at": 1753985720000
  }
}

terminal.restored

Triggered when a deleted terminal is restored.

{
  "event": "terminal.restored",
  "data": {
    "terminal_id": "cd20477b-6936-4d62-9656-89b5de34dd20",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "restored_at": 1753985820000
  }
}

Location Events

location.created

Triggered when a new location is created.

{
  "event": "location.created",
  "data": {
    "location_id": "11efaf2f-2b69-40ee-9da1-19ef826d5fed",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "name": "Main Store",
    "address": "123 Main St, City, ST 12345",
    "status": "active",
    "created_at": 1753985520000
  }
}

location.updated

Triggered when location information is updated.

{
  "event": "location.updated",
  "data": {
    "location_id": "11efaf2f-2b69-40ee-9da1-19ef826d5fed",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "updated_fields": ["name", "address"],
    "updated_at": 1753985620000
  }
}

location.deleted

Triggered when a location is deleted (soft delete).

{
  "event": "location.deleted",
  "data": {
    "location_id": "11efaf2f-2b69-40ee-9da1-19ef826d5fed",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "deleted_at": 1753985720000
  }
}

location.restored

Triggered when a deleted location is restored.

{
  "event": "location.restored",
  "data": {
    "location_id": "11efaf2f-2b69-40ee-9da1-19ef826d5fed",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "restored_at": 1753985820000
  }
}

API Key Events

apikey.created

Triggered when a new API key is created.

{
  "event": "apikey.created",
  "data": {
    "apikey_id": "key_1234567890",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "name": "Production API Key",
    "scopes": ["read:transactions", "write:transactions"],
    "created_at": 1753985520000
  }
}

apikey.revoked

Triggered when an API key is revoked.

{
  "event": "apikey.revoked",
  "data": {
    "apikey_id": "key_1234567890",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "revoked_at": 1753985620000
  }
}

Credentials Events

credentials.created

Triggered when new processor credentials are created.

{
  "event": "credentials.created",
  "data": {
    "credentials_id": "cred_1234567890",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "processor": "tsys",
    "gateway": "sierra",
    "created_at": 1753985520000
  }
}

credentials.revoked

Triggered when processor credentials are revoked.

{
  "event": "credentials.revoked",
  "data": {
    "credentials_id": "cred_1234567890",
    "account_id": "ae4e8b9b-9841-44c2-9080-85ca72e8b59c",
    "processor": "tsys",
    "gateway": "sierra",
    "revoked_at": 1753985620000
  }
}

Batch Events

batch.created

Triggered when a new batch is created.

{
  "event": "batch.created",
  "data": {
    "batch_id": "batch_1234567890",
    "name": "Daily Batch - 2024-01-15",
    "transaction_count": 150,
    "total_amount": 150000,
    "currency": "USD",
    "processor": "tsys",
    "gateway": "sierra",
    "created_at": 1753985520000,
    "status": "open"
  }
}

batch.completed

Triggered when a batch is completed.

{
  "event": "batch.completed",
  "data": {
    "batch_id": "batch_1234567890",
    "status": "completed",
    "transaction_count": 150,
    "total_amount": 150000,
    "currency": "USD",
    "processor": "tsys",
    "gateway": "sierra",
    "completed_at": 1753985620000
  }
}

Event Processing

Handling Events

function processWebhook(payload) {
  const { event, data } = payload;
  
  switch (event) {
    // Transaction events
    case 'transaction.created':
      handleTransactionCreated(data);
      break;
    case 'transaction.authorized':
      handleTransactionAuthorized(data);
      break;
    case 'transaction.captured':
      handleTransactionCaptured(data);
      break;
    case 'transaction.adjusted':
      handleTransactionAdjusted(data);
      break;
    case 'transaction.cancelled':
      handleTransactionCancelled(data);
      break;
    case 'transaction.refunded':
      handleTransactionRefunded(data);
      break;
    case 'transaction.reversed':
      handleTransactionReversed(data);
      break;
    case 'transaction.settled':
      handleTransactionSettled(data);
      break;
    
    // Account events
    case 'account.created':
      handleAccountCreated(data);
      break;
    case 'account.updated':
      handleAccountUpdated(data);
      break;
    case 'account.deleted':
      handleAccountDeleted(data);
      break;
    case 'account.restored':
      handleAccountRestored(data);
      break;
    
    // Terminal events
    case 'terminal.created':
      handleTerminalCreated(data);
      break;
    case 'terminal.updated':
      handleTerminalUpdated(data);
      break;
    case 'terminal.deleted':
      handleTerminalDeleted(data);
      break;
    case 'terminal.restored':
      handleTerminalRestored(data);
      break;
    
    // Location events
    case 'location.created':
      handleLocationCreated(data);
      break;
    case 'location.updated':
      handleLocationUpdated(data);
      break;
    case 'location.deleted':
      handleLocationDeleted(data);
      break;
    case 'location.restored':
      handleLocationRestored(data);
      break;
    
    // API Key events
    case 'apikey.created':
      handleAPIKeyCreated(data);
      break;
    case 'apikey.revoked':
      handleAPIKeyRevoked(data);
      break;
    
    // Credentials events
    case 'credentials.created':
      handleCredentialsCreated(data);
      break;
    case 'credentials.revoked':
      handleCredentialsRevoked(data);
      break;
    
    // Batch events
    case 'batch.created':
      handleBatchCreated(data);
      break;
    case 'batch.completed':
      handleBatchCompleted(data);
      break;
    
    default:
      console.log('Unknown event:', event);
  }
}

Idempotency

Webhook events are idempotent. You can safely process the same event multiple times without side effects. Use the event_id field to track processed events.

Event Ordering

Events are delivered in the order they occurred, but network issues may cause out-of-order delivery. Always check timestamps and implement proper ordering logic if needed.

Event Filtering

You can filter events by:

  • Event Type: Subscribe to specific event types
  • Transaction Type: Filter by transaction_type (auth, sale, refund, reverse)
  • Status: Filter by status (authorized, captured, declined, refunded, reversed)
  • Processor: Filter by processor (tsys, payroc, etc.)
  • Gateway: Filter by gateway (sierra, etc.)

Complete Event List

Event Description Category
transaction.created Transaction initiated Transaction
transaction.authorized Transaction authorized Transaction
transaction.captured Transaction captured Transaction
transaction.adjusted Transaction amount adjusted Transaction
transaction.cancelled Transaction cancelled Transaction
transaction.refunded Transaction refunded Transaction
transaction.reversed Transaction reversed Transaction
transaction.settled Transaction settled Transaction
account.created Account created Account
account.updated Account updated Account
account.deleted Account deleted Account
account.restored Account restored Account
terminal.created Terminal created Terminal
terminal.updated Terminal updated Terminal
terminal.deleted Terminal deleted Terminal
terminal.restored Terminal restored Terminal
location.created Location created Location
location.updated Location updated Location
location.deleted Location deleted Location
location.restored Location restored Location
apikey.created API key created API Key
apikey.revoked API key revoked API Key
credentials.created Credentials created Credentials
credentials.revoked Credentials revoked Credentials
batch.created Batch created Batch
batch.completed Batch completed Batch

See also

  • Setting up Webhooks - Complete guide to configuring webhook endpoints and event subscriptions
  • Webhook Security - Security best practices for webhook endpoints and signature verification
  • Webhook Testing - Learn how to test and verify webhook functionality