Last updated on September 30, 2025
AsyncAPI for fulfillment service 0.0.1 documentation
- Protobuf File Spec: ecommerce.proto
Published Messages (fulfillment)
The service publishes one of these messages below.
fulfillmentCompleted
Message is sent when fulfillment is completed. Contains fields from and the following payload.
Example value
{
"payload": {
"fulfillment": {
"userId": "string",
"orderNo": "string",
"code": "string",
"source": "PURCHASE",
"fulfillItems": [
{
"itemId": "string",
"itemName": "string",
"quantity": 0,
"storeId": "string",
"itemSku": "string",
"extraSubscriptionDays": 0,
"itemType": "string"
}
],
"grantedItemIds": [
"string"
],
"entitlementSummaries": [
{
"id": "string",
"namespace": "string",
"userId": "string",
"clazz": "APP",
"type": "DURABLE",
"stackable": true,
"stackedUseCount": 0,
"storeId": "string",
"itemId": "string",
"grantedCode": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"name": "string"
}
],
"creditSummaries": [
{
"walletId": "string",
"namespace": "string",
"userId": "string",
"amount": 0,
"currencyCode": "string"
}
],
"status": "string",
"fulfillmentError": {
"httpStatus": 0,
"code": 0,
"message": "string"
},
"metadata": {}
}
},
"id": "string",
"version": 0,
"name": "string",
"namespace": "string",
"parentNamespace": "string",
"timestamp": "2019-08-24T14:15:22Z",
"clientId": "string",
"userId": "string",
"traceId": "string",
"sessionId": "string"
}
payload
| Name | Type | Description |
|---|---|---|
| fulfillment | object | - |
payload.fulfillment
| Name | Type | Description |
|---|---|---|
| userId | string | userId |
| orderNo | string | orderNo |
| code | string | redeemed code |
| source | string | - |
| fulfillItems | array<object> | items should do fulfillment |
| grantedItemIds | array | item ids already granted |
| entitlementSummaries | array<object> | entitlement granted |
| creditSummaries | array<object> | credit granted |
| status | string | fulfillment status |
| fulfillmentError | object | - |
| metadata | object | - |
payload.fulfillment.fulfillItems[number]
| Name | Type | Description |
|---|---|---|
| itemId | string | item id |
| itemName | string | item name |
| quantity | integer (int32) | item quantity |
| storeId | string | store id |
| itemSku | string | item sku |
| extraSubscriptionDays | integer (int32) | extra subscription days |
| itemType | string | item type |
payload.fulfillment.entitlementSummaries[number]
| Name | Type | Description |
|---|---|---|
| id | string | entitlement id |
| namespace | string | entitlement namespace |
| userId | string | user id |
| clazz | string | entitlement clazz |
| type | string | entitlement type |
| stackable | boolean | a flag indicates whether the consumable entitlement is stackable |
| stackedUseCount | integer (int32) | consumable entitlement stacked use count |
| storeId | string | store id |
| itemId | string | item id |
| grantedCode | string | granted code |
| createdAt | string (date-time) | - |
| updatedAt | string (date-time) | - |
| startDate | string (date-time) | time when the entitlement becomes active |
| endDate | string (date-time) | time when the entitlement becomes expired |
| name | string | item name |
payload.fulfillment.creditSummaries[number]
| Name | Type | Description |
|---|---|---|
| walletId | string | wallet id |
| namespace | string | namespace |
| userId | string | user id |
| amount | integer (int64) | amount to be paid |
| currencyCode | string | currency code |
payload.fulfillment.fulfillmentError
| Name | Type | Description |
|---|---|---|
| httpStatus | integer (int32) | http status |
| code | integer (int32) | error code |
| message | string | error message |
payload.fulfillment.metadata
This is a free-form object.