$transaction events should be mapped to two separate actions on your site. The
$create_order event should be used when your users initiate something that they will end up paying for, whether immediately or in the future. Examples include signing up for a service or checking out in an e-commerce store. The
$transaction event should be used to send the results of a payment attempt, such interactions with a payment gateway, a user redeeming a voucher or accumulated points, or even a cash payment. One
$transaction event should be sent for every
$payment_method in the corresponding
$create_orderevent is the ideal place to specify whether the customer requested expedited shipping as well as add additional custom fields to capture differences in behavior between good and bad entities. Filling in any details about the service or good (whether digital or physical) in the $items list is strongly encouraged.
$transactionevent contains fields for specifying whether the payment attempt was successful, including avs, cvv, paypal, and stripe response codes when relevant.
Let's take the example where a customer wants to buy an 11 inch Holly Wand from you, and is going to pay for the wand with a credit card and a gift card:
After the customer enters their credit card information and the gift card code and completes checkout, You should send Sift a
$create_order event with 1 item (11 inch holly wand) and 2
$payment_methods (one for the credit card, and one for the gift card). After you attempt to charge the gift card, send Sift a
$transaction event with the gift card information in the
$payment_method field and all other pertinent fields. After you attempt to charge the credit card, send Sift another
$transaction event with the credit card information in the
$payment_method field and all other pertinent fields.