Skip to content

Transaction Subscriptions

Receive real-time notifications for payment transaction events including authorizations, captures, refunds, voids, and ACH transactions.

Subscription Arguments

When creating a transaction subscription, you can specify filtering arguments to receive only the events you need.

Required Arguments

ArgumentTypeDescription
entity_ksuidstringRequired. Your 27-character merchant identifier

Optional Filter Arguments

ArgumentTypeDescription
roll_upbooleanWhen true, includes transactions for child merchants in the hierarchy. Default: false
statusstringFilter by transaction status. Values: Tran approved, Tran denied, Tran approved no response, Tran denied no response
amount_greater_thanstringOnly include transactions with amounts greater than this value
amount_less_thanstringOnly include transactions with amounts less than this value
typestringFilter by transaction type (see values below)
currency_codestringFilter by 3-digit currency code (e.g., 840 for USD)
card_schemestringFilter by card network (see values below)
response_codestringFilter by specific response code
initiation_typestringFilter by initiation type: ecommerce or telephone
was_voidedbooleanWhen true, only include voided transactions
was_refundedbooleanWhen true, only include refunded transactions
was_capturedbooleanWhen true, only include captured transactions
was_reversedbooleanWhen true, only include reversed transactions
has_errorbooleanWhen true, only include transactions with errors

Transaction Types

Valid values for the type argument:

  • Authorization
  • Capture
  • Refund
  • Void
  • ACH Credit
  • ACH Debit
  • Authorization Capture
  • Standalone Refund
  • Balance Inquiry
  • Partial Reversal
  • Authorization Reversal
  • Withdrawal
  • Account Verification
  • Payment Credit
  • ACH Void

Card Schemes

Valid values for the card_scheme argument:

  • VISA
  • MASTERCARD
  • AMERICAN EXPRESS
  • DISCOVER
  • JCB
  • DINERS CLUB INTERNATIONAL
  • CHINA UNION PAY
  • DEBIT

Webhook Payload

When a transaction event matches your subscription criteria, your webhook receives a JSON payload with a wrapper containing metadata and a data array of events.

Wrapper Fields

FieldTypeDescription
idUUIDUnique identifier for this notification
typestringSubscription type (transactions)
timestampstringWhen the notification was generated
attemptsarrayDelivery attempt history
dataarrayArray of transaction event objects

Event Fields

FieldTypeDescription
tran_ksuidstringUnique transaction identifier
tran_event_ksuidstringUnique transaction event identifier
entity_ksuidstringMerchant identifier
request_ksuidstringOriginal request identifier
gateway_type_ksuidstringGateway type identifier
datestringTransaction datetime with timezone
typestringTransaction type
statusstringTransaction status
cannonical_idstringComposite identifier in format {type}:{status}
cardstringLast 4 digits of card number
card_schemestringCard network (VISA, MASTERCARD, etc.)
payment_methodstringPayment method used
transaction_amountnumberTransaction amount in currency units
fee_amountnumberFee amount
tip_amountnumberTip amount
tax_amountnumberTax amount
ach_processing_amountnumberACH processing amount
currency_codestringISO 4217 currency code
currency_namestringCurrency name
currency_exponentnumberDecimal places for currency
auth_codestringAuthorization code
response_codestringResponse code
response_textstringResponse description
avs_checkstringAVS check result
device_namestringTerminal/device name
device_notesstringDevice notes
merchant_dataobjectMerchant-specific custom data
possible_descriptor_valuesobjectStatement descriptor values by card scheme
request_jsonstringOriginal API request as JSON string
response_jsonstringAPI response as JSON string
was_voidedbooleanWhether transaction was voided
was_refundedbooleanWhether transaction was refunded
was_capturedbooleanWhether transaction was captured
was_reversedbooleanWhether transaction was reversed
load_tsstringRecord load timestamp
tran_event_load_tsstringTransaction event load timestamp
tran_event_authorization_load_tsstringAuthorization event load timestamp
tran_event_authorization_detail_load_tsstringAuthorization detail load timestamp

Example Payload

json
{
  "id": "0a5373fd-af38-4a43-b76e-a254ad0f3b0a",
  "type": "transactions",
  "timestamp": "2024-01-15 10:30:00.545 -0800",
  "attempts": [],
  "data": [
    {
      "tran_ksuid": "38JJwHd8U9DJHGg3QqInArVqL9b",
      "tran_event_ksuid": "38JJwB5ErCxrbv9OgntMqlYcBRp",
      "entity_ksuid": "38JJwFgEKU8xJjpJKmbMwvhD3qF",
      "request_ksuid": "38JJwHhsBGxzl1knke5PEyj2QLN",
      "gateway_type_ksuid": "38JJwGyceey6vvIUVSvWme2uCRR",
      "date": "2024-01-15 10:30:00.000 -0800",
      "type": "Authorization Capture",
      "status": "Tran approved",
      "cannonical_id": "Authorization Capture:Tran approved",
      "card": "4242",
      "card_scheme": "VISA",
      "payment_method": "Card",
      "transaction_amount": 150.00,
      "fee_amount": 0,
      "tip_amount": 0,
      "tax_amount": 0,
      "ach_processing_amount": 0,
      "currency_code": "840",
      "currency_name": "US Dollar",
      "currency_exponent": 2,
      "auth_code": "123456",
      "response_code": "00",
      "response_text": "Approval and completed successfully",
      "avs_check": "Y",
      "device_name": "ECommerce Device",
      "device_notes": "Merchant Name : ECommerce Device",
      "merchant_data": {
        "CustomerID": "cust_123456",
        "OrderNumber": "order_789012"
      },
      "possible_descriptor_values": {
        "VISA": "MERCHANT NAME"
      },
      "request_json": "{\"Amount\":{\"Total\":150.00,\"Currency\":\"USD\"},\"PaymentMethod\":{\"Card\":{...},\"Token\":{\"TokenID\":\"...\"}},\"TransactionEntry\":{...},\"Detail\":{...}}",
      "response_json": "{\"TransactionID\":\"...\",\"EventID\":\"...\",\"RequestID\":\"...\",\"AuthCode\":\"123456\",\"ResponseCode\":\"00\",\"ResponseText\":\"Approval and completed successfully\",\"Approved\":true,...}",
      "was_voided": false,
      "was_refunded": false,
      "was_captured": false,
      "was_reversed": false,
      "load_ts": "2024-01-15 10:30:15.000 -0800",
      "tran_event_load_ts": "2024-01-15 10:30:15.000 -0800",
      "tran_event_authorization_load_ts": "2024-01-15 10:30:15.000 -0800",
      "tran_event_authorization_detail_load_ts": "2024-01-15 10:30:15.000 -0800"
    }
  ]
}

INFO

The request_json and response_json fields contain the full API request and response as JSON strings. They are truncated in this example for brevity.


API Operations

List Subscriptions

Retrieve a paginated list of transaction subscriptions.

bash
curl -X GET "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction?limit=10&offset=0" \
  -H "Authorization: YOUR_API_TOKEN"

Query Parameters

ParameterTypeDefaultDescription
limitinteger10Maximum number of results (0-1000)
offsetinteger0Number of results to skip

Create Subscription

Create a new transaction subscription with filtering arguments.

bash
curl -X POST "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction" \
  -H "Authorization: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "High Value Transactions",
    "description": "Notifications for transactions over $100",
    "arguments": {
      "entity_ksuid": "2MER123CHANT456KSUID789ABC",
      "amount_greater_than": "10000",
      "roll_up": false
    }
  }'

Request Body

FieldTypeRequiredDescription
namestringYesName for the subscription (1-64 characters)
descriptionstringNoDescription (1-256 characters)
argumentsobjectYesFilter arguments (see above)

Get Subscription

Retrieve details of a specific subscription.

bash
curl -X GET "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}" \
  -H "Authorization: YOUR_API_TOKEN"

Update Subscription

Update an existing subscription.

bash
curl -X PUT "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}" \
  -H "Authorization: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Name",
    "description": "Updated description",
    "arguments": {
      "entity_ksuid": "2MER123CHANT456KSUID789ABC",
      "status": "Tran approved"
    }
  }'

Delete Subscription

Delete a subscription. This also removes all destination mappings.

bash
curl -X DELETE "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}" \
  -H "Authorization: YOUR_API_TOKEN"

List Subscription Destinations

List webhook destinations linked to this subscription.

bash
curl -X GET "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}/destinations" \
  -H "Authorization: YOUR_API_TOKEN"

Add Destination to Subscription

Link a webhook destination to receive events from this subscription.

bash
curl -X POST "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}/destinations" \
  -H "Authorization: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destination_id": "9603F4B2-1874-42FE-A2BC-F7B45C45A9D6"
  }'

Remove Destination from Subscription

Unlink a webhook destination from this subscription.

bash
curl -X DELETE "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}/destinations/{destination_id}" \
  -H "Authorization: YOUR_API_TOKEN"

Send Test Event

Send a test notification to verify your webhook integration.

bash
curl -X POST "https://api.notifications.paynetworx.cloud/v1/subscriptions/transaction/{id}/test" \
  -H "Authorization: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Query Parameters

ParameterTypeDefaultDescription
dry_runbooleanfalseWhen true, returns the payload that would be sent without actually delivering it

Request Body (Optional)

FieldTypeDescription
overridesobjectOptional field overrides for the test payload

This sends a sample transaction payload to all linked webhook destinations, allowing you to verify your integration before receiving live events. Use dry_run=true to preview the payload without sending.


Error Responses

StatusDescription
400Bad Request - Invalid input parameters
403Forbidden - Insufficient permissions
500Internal Server Error