  1. [    Home ](/)
2. [Integrations](/integrations)
3. Payment Events Stream
 
  Apache Kafka stream  

# Payment Events Stream

 

  Overview  Topics 2   Messages 2  Connection 

 Payment Events Stream emits one event per completed payment on the payments.transaction.completed topic. Events are keyed by account identifier so that all activity for an account lands on the same partition and ordering is preserved per account. Consumers should be idempotent: at-least-once delivery means an event may be redelivered after a consumer group rebalance.



 

  Service type Apache Kafka stream 

   ### Topics

 `payments.transaction.completed` 

###  Payment Events Stream AsyncAPI 2.6.0 · v1.0.0 

Kafka event stream publishing one event per completed payment. Intended for consumers that need near real-time transaction events rather than polling a REST endpoint.

- `uat` kafka-uat-1.digitalapi.ai:9092 kafka
 
   payments.transaction.completed One message per completed payment. Keyed by accountId so all activity for an account lands on the same partition and per-account ordering holds.

  subscribe  Receive completed payment events. `PaymentCompleted`  

  

  

   message PaymentCompleted application/json 

   FieldTypeRequiredDescription    `eventId` `string (uuid)` yes Unique event id. Use for idempotent processing.   `accountId` `string` yes Account the payment settled against. Partition key.   `amount` `number` yes Settled amount, positive.   `currency` `string` yes ISO 4217 currency code.   `occurredAt` `string (date-time)` yes When the payment completed, UTC.    Sample payload Example message — placeholder values 

 ```
{
    "eventId": "00000000-0000-0000-0000-000000000000",
    "accountId": "string",
    "amount": 0,
    "currency": "string",
    "occurredAt": "2026-01-01T00:00:00Z"
}
```

 

 

### Inline message schema

 ```
{
  "type": "object",
  "properties": {
    "eventId": { "type": "string", "format": "uuid" },
    "accountId": { "type": "string" },
    "amount": { "type": "number" },
    "currency": { "type": "string", "minLength": 3, "maxLength": 3 },
    "occurredAt": { "type": "string", "format": "date-time" }
  },
  "required": ["eventId", "accountId", "amount", "currency", "occurredAt"]
}
```

 Sample payload Example message — placeholder values 

 ```
{
    "eventId": "00000000-0000-0000-0000-000000000000",
    "accountId": "string",
    "amount": 0,
    "currency": "string",
    "occurredAt": "2026-01-01T00:00:00Z"
}
```

 

    Brokers `kafka-uat-1.digitalapi.ai:9092` 

 ### Specification files

- [ YAML payment-events-stream.asyncapi.yaml ](/sites/default/files/service-specs/payment-events-stream.asyncapi.yaml)