Promotion Reward Application Input

The details required to create transaction journals. The request includes a list of transaction journals, which are to be created. It includes the list of promotions applied along with the rewards. If any of the rewards aren’t applied, then everything is rolled back. No partial rewards are applied.

JSON example 

This example shows a sample request when journalCreationMode is CreateTransactionJournal.

1{
2  "shouldCheckCouponUsageLimit": true,
3  "journalCreationMode": "CreateTransactionJournal",
4  "transactionJournalList": [
5    {
6      "ActivityDate": "2025-10-08T12:45:19Z",
7      "JournalTypeId": "0lET10000004CQp",
8      "ReferredPartyId": "003SB00000U84F0YAJ",
9      "Quantity": "1",
10      "TransactionAmount": "5000",
11      "CurrencyIsoCode": "USD",
12      "Status": "Processed",
13      "appliedPromotions": [
14        {
15          "promotionId": "0c8SB000000HASnYAO",
16          "promotionCode": "GET10OFF",
17          "couponCode": "COUPON100",
18          "rewards": [
19            {
20              "rewardType": "ProvideDiscount",
21              "discountAmount": 15
22            },
23            {
24              "rewardType": "IssueVoucher",
25              "voucherDefinitionName": "$100 off",
26              "voucherCode": "SALE-4F8G-RT2P",
27              "voucherEffectiveDate": "2025-10-09",
28              "voucherExpirationDate": "2025-10-10",
29              "notes": "discount voucher"
30            },
31            {
32              "rewardType": "AssignGame",
33              "gameDefinitionName": "SpintheWheelGame",
34              "gameExpirationDate": "2025-10-10"
35            }
36          ]
37        }
38      ]
39    }
40  ]
41}

This example shows a sample request when journalCreationMode is DoNotCreate.

1{
2  "shouldCheckCouponUsageLimit": true,
3  "journalCreationMode": "DoNotCreate",
4  "transactionJournalList": [
5    {
6      "ExternalTransactionNumber": "P1-981950",
7      "ActivityDate": "2025-10-08T12:45:19Z",
8      "JournalTypeId": "0lET10000004CQp",
9      "ReferredPartyId": "003SB00000U84F0YAJ",
10      "Quantity": "1",
11      "TransactionAmount": "5000",
12      "CurrencyIsoCode": "USD",
13      "Status": "Processed",
14      "appliedPromotions": [
15        {
16          "promotionId": "0c8SB000000HASnYAO",
17          "promotionCode": "GET10OFF",
18          "couponCode": "COUPON100",
19          "rewards": [
20            {
21              "rewardType": "ProvideDiscount",
22              "discountAmount": 15
23            },
24            {
25              "rewardType": "IssueVoucher",
26              "voucherDefinitionName": "$100 off",
27              "voucherCode": "SALE-4F8G-RT2P",
28              "voucherEffectiveDate": "2025-10-09",
29              "voucherExpirationDate": "2025-10-10",
30              "notes": "discount voucher"
31            },
32            {
33              "rewardType": "AssignGame",
34              "gameDefinitionName": "SpintheWheelGame",
35              "gameExpirationDate": "2025-10-10"
36            }
37          ]
38        }
39      ]
40    }
41  ]
42}

Properties 

NameTypeDescriptionRequired or OptionalAvailable Version
journal​CreationModeStringSpecifies whether to create a transaction journal record and, if so, where to store the data.Required66.0
shouldCheck​CouponUsage​LimitBooleanIndicates whether the API must execute the Coupon Usage Increase API to verify the coupon usage count and increase the redemption usage count of the specified coupon code (true) or not (false).Optional65.0
transaction​JournalListList<Map<String, Object>>The list of transaction inputs to process for promotion evaluation and reward application.Required65.0

Possible values are:

  • CreateTransactionJournal—Creates a transaction journal record for each entry and uses that record’s ID as the transaction reference to apply rewards and track coupon redemption. This value is applicable only when you have Loyalty Management enabled in your org.
  • DoNotCreate—Does not create a transaction journal record. You must provide ExternalTransactionNumber in each transactionJournalList entry, which is then used as the transaction reference.