IPN Events for Order

An IPN-event is sent for each transaction and for some other conditions (such as a missed backbilling payment). The event name is sent as $_POST['event'].

The names in the backoffice are sent via the parameter "event_label".

Each IPN call sends exactly one of these event notifications:

When copying any parameters, please pay attention to possible line breaks.

Event Table

EventName in backofficeDescription
on_paymentpaymentThe buyer makes a successful payment.
on_refundrefundThe support team of the vendor or Digistore24 has initiated a refund, which has been successfully processed.
on_chargebackchargebackThe credit card company processed a chargeback.
on_payment_missedmissed recurring paymentFor a subscription or installment payment, a payment is missing. Use this e.g. to revoke access to a subscription membership, if the buyer has - for whatever reason - stopped paying. The "on_payment_missed" event is triggered, after a payment failed (after some tries) or after the rebilling was cancelled by the buyer - e.g. by an explizit cancellation request or by a refund or a chargeback. See billing_stop_reason. Please note, that an “on_payment” event may occur, if the buyer succeeds in payment after the “on_payment_missed” event. In the case the buyer wants to conitunue his membership and access should be granted again.
payment_denialrejected paymentThe payment was rejected. The IPN event is sent after the last payment attempt. By default, rejected payments are not selected in the IPN configuration.
on_rebill_cancelledrebilling canceledThis event is sent immediately when the support clicks the “stop rebilling” button in the order details. Some days later (when the payment is due, but not completed), an on_payment_missed event is sent.
on_rebill_resumedrebilling resumedThe buyer has requested to continue the rebilling payments. This event is sent, when the support clicks the “restart rebilling” button in the order details.
last_paid_dayend of paid periodThe last paid day of the order is over. The event is usually sent early in the morning.
What is the difference between “on_payment_missed” and “on_rebill_cancelled”?

“On_rebill_cancelled” is sent, when the customers cancels a subscription or installment payment and the support operator stops the payments. “On_payment_missed” event is sent, when the next payment would be due.

Other IPN-Events

EventName in backofficeDescription
connection_testTest connectionOur server sends this event to test the connection to your server, e.g. if you hit the “Test connection” button in the vendor’s IPN settings section. The response should always be “OK”.
If the test fails, check again the above points of this integration guide and if the server is reachable with the script.
on_affiliationNew affiliateWhen an affiliate wants to promote your product and the affiliation is accepted, then an IPN-Call with this event will be sent.
eticketNew e-ticketFor created e-tickets. This may also take place after the order has been placed, as the buyer may not enter the participant data until later. The IPN message for an e-ticket can also be sent twice if, for example, a name is entered or corrected later. Therefore, please use eticket_id to check whether the ticket is already in your database.
custom formNew custom formFor completed additional input fields.

Order Events

With each IPN request, we send this set of parameters.

These parameters are included in the SHA512 signature.

The SHA512 Signature itself is transferred as the parameter "sha_sign".

ParameternameTypeDescriptionExample value
ipn_versionfloatCurrent version of the IPN-interface.1.2
api_modestring(4)Indicates live or test mode. Possible values: live, testlive
order_idstring(15)Unique ID of the order. Multiple transactions of the same order have the same order-ID.34DEFS45DE2
order_datestring(10)Date of the order.2013-03-31
order_timestring(8)Time of the order15:57:34
order_typestring(31)Type of order. Values are:
regular - order via regular orderform
upgrade - replaces of an existing order (see below)
phone_order - order via DigiCalls
cart - shopping cart order
vat_change - created because of change of vat


regular
order_date_timestring(19)Date and time of the order.2013-03-31 15:57:34
transaction_datedateDate of the transaction (e.g. of the payment). It is often the same as order_date but may differ, e.g. for payment by e-check.2013-03-31
receipt_urlstring(127)URL for the receiving page of the order of Digistore24.https://www.digistore24.com/receipt/abc123/xyz789
renew_urlstring(127)URL to redo a payment if the payment was cancelled (or to change the payment data for rebilling).https://www.digistore24.com/renew/abc123/xyz789
add_urlstring(127)URL to add or remove products from an order (when the main product’s or the addon’s quantity may be changed after the purchase. This is set up in the product editor).https://www.digistore24.com/order/add/abc123/xyz789
support_urlstring(127)URL to access our buyer support system. This system answers frequently asked questions. It also allows the buyer to cancel rebilling payments and to request a refund.
rebilling_stop_urlstring(127)URL to stop the rebilling payments. It's empty if the purchase is not a rebilling purchase.
request_refund_urlstring(127)URL to request a refund.
order_details_urlstring(127)URL for order details. If you are not logged in at Digistore24, you will be asked to log in.
customer_to_affiliate_urlstring(127)If you have enabled the “Customers to Affiliates”-program for the purchased main product, this links contains the invitation URL for the customer to become an affiliate. If they follow the URL, a Digistore24-account will be created. If the program is disabled/inactive, this parameter is missing.https://www.digistore24.com/become_affiliate/abc123/xyz789
customer_affiliate_namestring(31)If the buyer has a Digistore24 account, this is the account name. This does not necessarily mean, that they have established affiliations with your products.user12345
someusername
customer_affiliate_promo_url
tring(127)
The new affiliate my use this url to promote the product he bought.http://www.digistore.local/redir/54321/user12345/
payment_idstring(40)Unique ID of the payment. Multiple payments of the same order have different payment-IDs.PAYID-43-3999234
merchant_idintUnique ID of a vendor.39499382
merchant_namestring(31)Unique Digistore24 name of the vendor.JohnSmith
customstring(63)Custom parameter the vendor has sent as GET-Parameter “custom” to the order form.user_300342
countrystring(2)Country ISO-Code (two characters) of the buyer’s country. If the buyer does not enter a country (e.g. for digital products), the country is determined using the buyer's IP.US
is_gdpr_countryY/NY = The user data fall under the EU gdrp (German: DSGVO)
N = The user data do not fall under the gdrp.
Y
affiliate_idintUnique ID of the affiliate. It is “0” if the sale was made without an affiliate.339993
affiliate_namestring(31)Unique Digistore24 name of the affiliate. It is empty if the sale was made without an affiliate.
campaignkeystring(23)The campaignkey of the affiliate (used as part of the promolink).NewsletterXY
trackingkeystring(47)The vendor’s trackingkey (used as GET-Parameter “ds24tr” as part of the promolink or orderform-URL)SalespageXY
salesteam_namestring(63)Name of the sales team who has created the purchase.A-Team
salesteam_idintThe ID of the sales team.12345
transaction_idintThe transaction-ID.3999938
transaction_amountfloatThe amount of the transaction.37.99
transaction_currencystring(3)Currency code.USD
transaction_processed_atdateDate of the transaction.2012-03-23 18:21:47
transaction_typeenumPossible values: payment, refund, chargebackpayment
pay_sequence_nointFor single payments this value is 0. For instalments and subscription only: Number of payment, e.g. 1 for the first payment, 2 for the second and so on.3
currencystring(3)Currency code.USD
amount_bruttofloatGross amount of the payment.97.00
amount_nettofloatNet/After-tax amount of the payment (i.e. the Gross amount minus the VAT-amount).81.51
amount_vatfloatAmount of the VAT.15.49
amount_providerfloatFee for Digistore24.8.66
amount_feefloatIf applicable: chargeback fee.0.00
amount_payoutfloatAmount shared between vendor, affiliate, Joint Venture partner and Cross Upsell partner (as far as applicable).72.85
amount_vendorfloatShare of the vendor.51.00
amount_affiliatefloatShare of the affiliate (if applicable).21.85
amount_partnerfloatShare of Joint Venture/Cross Upsell partners (if applicable).0.00
amount_creditedfloatIf the buyer performs an upgrade or downgrade of the order, changes the payment plan or removes items from an existing order, there may be a credit balance from the previous purchase. This is the amount of the credit balance for this payment.0.00
vat_ratefloatThe VAT-rate in percent.19.00
number_of_installmentsintTotal number of payments including the first payment.3
billing_typePossible values: single_payment, subscription, installmentsingle_payment
billing_statusstring(15)Possible values: paying (only for rebilling; payments are active)aborted, unpaid, reminding, completed (only for single payment and instalments; the single payment is completed/all instalment payments are completed)completed
is_cancelled_fordateIf given, the order is cancelled for this date. The product access should stop on this day.
billing_stop_reasonstring(23)Only if a rebilling has stopped. Possible values: by_operator, by_buyer, by_refund, by_chargeback, by_payment_denial, by_payment_uncertain, pay_alias_invalid, upgraded, no_product, merchant_inactive, unknownby_operator /
pay_methodstring(23)Payment method, e.g. PayPal, ELV, credit card.ELV
tagsstring(47)Tags of purchase – separated by commas.tag1,tag2,tag3
tag1string(47)
Tag of first producttag1,tag2
tag2string(47)
Tag of second producttag3
.........
product_idintUnique ID of the product.3323323
product_languageLanguage code of the product’s language.en
product_namestring(63)Readable name of the product.Fast wealth guide
product_delivery_typeenumPossible values: digital, shippingdigital
variant_idstring(31)The ID of product variant the buyer has selected (only if variants have been added to the product).blue
variant_namestring(63)The name of the product variant the buyer has selected (only if variants have been added to the product).blue coloured shirt
quantityintNumber of ordered products (with ID “product_id”). The most common one is “1”.1
product_id_2intUnique ID of the second product of the purchase (if applicable).
product_id_3intUnique ID of the third product of the purchase (if applicable).

product_txn_amount
product_txn_netto_amount
product_txn_vat_amount
product_txn_shipping

amountgros/net/vat/shipping amount per product and transaction27.33

product_amount
product_netto_amount
product_vat_amount
product_shipping_amount

amountdito for the purchase. Is the same as above for subscription and single payment. Differs for installments.99.95
Same for: product_id_4, product_id_5,

product_name, product_name_2, ...

product_delivery_type,
variant_id
variant_name
quantity

product_txn_amount
product_txn_netto_amount
product_txn_vat_amount
product_txn_shipping


product_amount
product_netto_amount
product_vat_amount
product_shipping_amount




buyer_idintThe ID of the buyer.333222
emailstring(63)The email of the buyer.claus@domain-xyz.com
languagestring(2)Language code of the buyer’s language.en
address_first_nameThe first name of the buyer.Claus
address_last_nameThe last name of the buyer.Myer
address_idThe adress-ID of the buyer.12345
address_streetStreet name and street number. Empty if no address is specified.Mainstr.123a
address_street_nameStreet name only.Mainstr.
address_street_numberStreet number only.123a
address_street2Only Address suffixsuite, building, etc.
address_cityCity name.Berlin
address_stateOnly for countries, which have a state (like USA). E.g. for Germany, no state is given.

address_zipcodeThe address-zipcode.12345
address_country2-Letter ISO country code. Empty if no address is specified.DE
address_country_nameFull name of the country. Empty if no address is specified.Germany
address_companyEmpty if no company is specified.Some Company Ltd.
address_tax_idThe VAT-ID of the buyer's company. Empty if no VAT-ID is specified.

address_phone_noEmpty if no phone number is specified.

upgrade_keystring(23)Use this key together with the order id for upgrade links and the smart upgrade widget to fill the placeholders [ORDER_ID] and [UPGRADE_KEY]ABCDEFGHI1234567890
custom_keystring(23)A random key, which is unique for the order. This key is transmitted to DigiMember and DigiBizz and may be used for automated user login.1234-Naiy8ahSaiT
orderform_idintThe ID of order form used for the purchase.
654321
payplan_idintThe ID of the selected payment plan.
123456
refund_days
intThe number of days within a refund is possible. 0= no refund is possible at all. 30 the buyer may refund within 30 days after purchase.
14

Rebilling

For "billing_type" subscription or installments, these extra values are transferred:

Parameter nameTypeDescriptionExample value
first_amountfloatThe gross amount the buyer agreed to pay.30.00
first_vat_amountfloatThe VAT amount of first_amount.4.79
other_amountsfloatThe second and following gross amounts the buyer agreed to pay30.00
other_vat_amountsfloatFor the second and following VAT amounts.4.79
first_billing_intervaltime intervalThe period of time between the first and the second payment.7_day
other_billing_intervalstime intervalThe period of time between the second and the third payment (and subsequent payments).1_month
next_payment_atdateDate of the next expected payment.2016-03-30
rebill_stop_noted_atdateDate on which the buyer's cancellation request was received.2019-03-31

Upgrades

For upgrade purchases these additional fields are transferred:

Parameter nameTypeDescriptionExample value
upgrade_typestring(15)“upgrade”=Change to more, expensive product, “downgrade”=Change to cheaper product, “special_offer”=Membership Offer, “switch_plan”=Tariff change, “package_change”=Package change
upgraded_order_idstring(15)ID of the “upgraded” order, i.e. the order ID the buyer has purchased the upgrade for.1A2B3C4E
upgraded_order_datestring(10)Date of the upgraded order.30.2013-03-31
upgraded_order_timestring(8)Time of the upgraded order.15:57:34
upgraded_order_date_timestring(19)Date and time of the upgraded order.2013-03-31 15:57:34
upgraded_buyer_idintID of the buyer who placed the original order. This is usually the same as the current order, but may be different if the buyer has entered a different name.1234
upgraded_emailstring(63)
user@domain.com
upgraded_address_first_namestring(39)
Claus
upgraded_address_last_namestring(39)
Meyer
upgraded_product_idint
15332
upgraded_product_namestring(63)
Instant Happiness
upgraded_product_id_2int
16331
upgraded_product_name_2string(63)
Wealth – the Guide
upgraded_product_id_3int
12332
upgraded_product_name_3string(63)
The Wealth Action Plan
and so on


delivery_datedateThe date, when the new product should be delivered and access to the previous (upgraded) product should be stopped. If empty, access to the new product should be granted immediately.(empty) or 2014-03-12
upgraded_order_paid_untildateFor upgrade_type “switch_plan” only. The previous order is paid until this date.2014-03-12

License Data

This section only applies, if Digistore24 delivers a license key together with your product. These data is only transferred for order events, not for other events like affiliation events.

If no license key is delivered with your product, these parameters are omitted.

Parameter nameTypeDescriptionExample value
license_idintUnique ID for the license.12345678
license_keystring(255)The license key displayed to the customer. The format varies with the creation method.


26WBC-694J5-N7BBG-9LN4V-HBD9E-TVPEE-H38F9-D72CB
license_createddateThe date the license key was created.2012-12-15 21:09:28
license_key_typeenumPossible values: list – the key was taken from a list of keys you have uploaded to Digistore24; random – Digistore24 has created the key randomly and unique; remote – Digistore24 has fetched the key from your server via http requestrandom
license_data_first_name license_data_last_name license_data_email license_data_product (for license key type list and random)string(each)For license key types “list” and “random”, Digistore24 sets the parameters to the values corresponding to the purchase.
license_data_KEY1 license_data_KEY1_label license_data_KEY2 license_data_KEY2_label license_data_KEY3 license_data_KEY3_label …..(for license key type remote)string (each)For license key type “remote” your license server may deliver license data as key-value pairs. Example: Your name: Myers Your key: ooZai8oh Then Digistore24 adds license data in this way: license_data_XX1=Myers
license_data_XX1_label=Your name; license_data_XX2=ooZai8oh; license_data_XX2_label=Your key XX1/XX2 are random keys.

License data and addon products

If there is more than one product part of a purchase, then for the second product a “_2” is added to the parameter name, e.g.: license_key_2 For the third addon product, a “_3” is added. And so on.

Coupon

Buying Coupons (Parameter-Table)

Parameter nameTypeDescriptionExample value
coupon_idIntID of the coupon.12345
coupon_codestring(64)The code used to redeem the coupon.DS11 22AA BB44 55CC DD66
coupon_amount_totalfloatThe amount of the coupon.50.00
coupon_amount_leftfloatThe unused amount of the coupon.17.33
coupon_currencystring(7)The currency code of the coupon.EUR
coupon_code_2string(64)The code of the second coupon of the purchase (if applicable).
coupon_amount_total_2float
coupon_amount_left_2float
coupon_currency_2string(7)

Using Coupons (Parameter-Table)

Parameter nameTypeDescriptionExample value
coupon_idIntID of the coupon bought in this purchase.12345
coupon_codestring(64)The code of the coupon bought in purchase.DS11 22AA BB44 55CC DD66
voucher_codestring(64)The tracking voucher code of the coupon.coupon_12345
used_coupon_codeString(64)The coupon code used for this purchase.DS11 22AA BB44 55CC DD66
used_coupon_idIntThe ID of the coupon used for this purchase.1122

E-Tickets

This section only applies, if Digistore24 delivers E-tickets together with your product. These data are only transferred for order events, not for other events like affiliation events.

Please note that there is also a separate IPN notification for created and updated E-tickets. The IPN data described here are transferred for the order IPN notifications.

If no E-ticket is delivered with your product, these parameters are omitted.

If the user opens the URL in the web browser, he may be asked for his name (if no name is known for the E-ticket). Then the ticket will be saved on his/her computer.

Please do NOT use instructions like “Right click the link and select save” because the user may not be able to enter his name.

Parameter nameTypeDescriptionExample value
eticket_datedateDate of the event (of the 1st product of the order).2015-12-27
eticket_date_2dateDate of the event (of the 2nd product of the order).2015-12-27
eticket_date_3dateDate of the event (of the 3rd product of the order).2015-12-27
and so on


eticket_hintstring(127)Hint/time on the event (of the 1st product of the order).7:00 am (Room 174)
eticket_hint_2string(127)Hint/time on the event (of the 2nd product of the order).7:00 am (Room 174)
eticket_hint_3string(127)Hint/time on the event (of the 3rd product of the order).7:00 am (Room 174)
and so on


eticket_urlstring(255)URL to download the E-ticket as an pdf-file (if it is created for the 1st product of the order).https://www.digistore24.com/eticket/file009382586171.pdf
eticket_url_2…same for the 2nd product of the order.

eticket_url_3…same for the 3rd product of the order.

(and so on)


eticket_url_B2nd E-ticket of the 1st product.

eticket_url_C3rd E-ticket of the 1st product.

eticket_url_D4th E-ticket of the 1st product.




eticket_url_Z26th E-ticket of the 1st product.

eticket_url_ZA27th E-ticket of the 1st product.

eticket_url_ZB28th E-ticket of the 1st product.




eticket_url_ZZ52nd E-ticket of the 1st product.

eticket_url_ZZA53rd E-ticket of the 1st product.




eticket_url_ZZZ78th E-ticket of the 1st product.

eticket_url_ZZZA79th E-ticket of the 1st product.

(and so on)


eticket_url_2_B2nd E-ticket of the 2nd product.

eticket_url_3_B2nd E-ticket of the 3nd product.

eticket_url_4_B2nd E-ticket of the 4nd product.

Newsletter subscription

On the order form, the user can be asked for a newsletter subscription (see the settings in the product editor, Tab "Order form").

Parameter nameTypeDescriptionExample value
newsletter_choicestring(15)none = no newsletter optin-checkbox was shown. optin = the buyer checked the newsletter optin-checkbox.optout = the buyer did not check the newsletter optin-checkbox (but it was present on the order form).optin
newsletter_choice_msgstring(63)The selected option as readable text (in the language of the order).Newsletter subscribed.

"Customer to Affiliate"-program

Parameter nameTypeDescriptionExample value
customer_affiliate_urlstring(127)If you have enabled the “Customers to Affiliates”-program for the purchased main product, this links contains the invitation URL for the customer to become an affiliate. If he follows the URL, a Digistore24 account will be created.https://www.digistore24.com/become_affiliate/abc123/xyz789
customer_affiliate_namestring(31)If the buyer has a Digistore24-account, this is the account name. This does not necessarily mean, that he has established affiliations with your products.user12345 supermerchant claus
customer_affiliate_promo_urlstring(127)The promolink for the affiliate.

IPN-Connection

Parameter nameDescription
ipn_config_idThe ID of the IPN connection – as it occurs, for example, in the edit link (https://www.digistore24-app.com/vendor/settings/ipn/edit/ID) or is returned by ipnSetup() as ipn_config_id.
ipn_config_domain_idIf the IPN connection was created via the Digistore API: The value passed as domain_id for ipnSetup().
ipn_config_api_key_idIf the IPN connection was created via the Digistore API: The numerical ID of the API key used. For the API key 12345-xxxxxxx, the ID would be 12345
ipn_config_products_ids“All” (if the connection applies to all products) or the list of product IDs separated with commas – without spaces e.g. 123,456,789

Affiliation Event

Parameter nameTypeDescriptionExample value
ipn_versionfloatCurrent version of the IPN-interface1.2
api_modestring(4)Indicates test mode. Possible value is only “live“.live
emailstring(63)Email-address of the new affiliate.user@domain.com
affiliate_namestring(31)Digistore24-ID of the new affiliate.maxmarketer
affiliate_linkstring(127)The new affiliate’s promolinkhttps://promo.123.maxmarketer.digistore24.com
referring_affiliate_name
string(31)
Name of the referring affiliate (if any)anothermarketer
languagestring(2)The new affiliate’s languagede
order_idstring(31)“affiliate-“, followed by the affiliate-ID.affiliate-12345
order_datestring(10)
2013-03-31
order_timestring(8)
15:57:34
order_date_timestring(19)
2013-03-31 15:57:34
address_first_name


address_last_name


address_id


address_street
Street name and street number. Empty if no address was specified.Mainstr. 123a
address_street_name
Street name only.Mainstr.
address_street_number
Street number only.123a
address_city
Empty if no address was specified.
address_state
Empty if no address was specified.KlausMeier
address_zipcode
Empty if no address was specified.123456,78900,9865
address_country
Empty if no address was specified.
address_company
Empty if no company was specified.
product_id
Unique ID of the product.3323323
product_language
Language code of the product’s language.en
product_namestring(63)Readable name of the product.Fast wealth guide

E Ticket Event

Note: The address data may be missing, if an E-ticket is created, but no participant data are available. When the buyer enters the participant data, a new IPN-notification is sent with the event “E-ticket” and action “update”.

Parameter nameTypeDescriptionExample value
ipn_versionfloatCurrent version of the IPN-interface.1.2
api_modestring(4)Indicates test mode. Possible value is only “test“.test
actionstring(15)Possible values: create; update; use; cancel_use; revoke; cancel_revoke
address_emailstring(63)Email-address of the new affiliate.
address_first_namestring(39)

address_last_namestring(39)

address_salutationstring(1)Possible values: F – for Mrs. ; M – for Mr.
address_titlestring(31)
Prof. Dr. Dr.
merchant_idintUnique ID of the vendor.
merchant_namestring(31)Unique Digistore24-name of the vendor.
order_idstring(31)The order-ID followed by a dash and the E-ticket-ID.
order_datestring(10)Date of the order.
order_timestring(8)Time of the order.
order_date_timestring(19)Date and time of the order.
order_is_paidstring(1)Y The order is paid or will be paid soon (in case of subscription or installments). N The order is not paid (e.g. the payment was refunded or charged back).Y
order_billing_statusstring(15)Possible values: paying (only for rebilling; Payments are active); aborted; unpaid; reminding; completed (only for single payment and installments. The single payment is completed / All; installment payments are completed)completed
product_idint

product_namestring(63)

languagestring(2)2-letter language code of product.
notetext

eticket_idintShort ID of the E-ticket (unique).
eticket_codeintLong ID of the E-ticket (includes the short ID and additionally an authentication code).10032261877243293591
eticket_nointNumber of this E-ticket in the current order position (1 for the first eticket, 2 for the second, …)1
eticket_countintTotal number of E-tickets in the current order position.3
eticket_is_blockedstring(1)Y The eticket has been revoked manually; N The E-ticket is usable.N
eticket_used_atdateEmpty (if not used) or a date.
eticket_created_atdateEmpty (if not used) or a date.
eticket_modified_atdateEmpty (if not used) or a date.
eticket_urlurlThe URL to download the E-ticket as a pdf-document.
location_idint

location_namestring[63]

location_notetext

location_map_image_urlstring[255]

location_countrystring[2]ISO-Code of the country of the location of the seminar.DE
location_addresstext

location_latitudestring[15]
43.132472
location_longitudestring[15]
11.1109412
location_directionstext

Custom Form Event

Note: The address fields may be missing. They are only added if the custom form contains inputs of an address type (like first name, last name, salutation, street, city and so on).

Parameter nameTypeDescriptionExample value
ipn_versionfloatCurrent version of the IPN-interface.1.2
api_modestring(4)Indicates test mode. Possible value is only “test“.test
actionstring(15)Possible value is only “create“.create
order_idstring(31)“E-ticket-“ followed by the E-ticket-ID.affiliate-1234567890
order_datestring(10)Date of the order.2013-03-31
order_timestring(8)Time of the order.15:57:34
order_date_timestring(19)Date and time of the order.2013-03-31 15:57:34
address_emailstring(63)Email-address of the new affiliate.user@domain.com
address_first_namestring(39)

address_last_namestring(39)

address_salutationstring(1)Possible values: F – for Mrs.; M – for Mr.F
(and so on)


merchant_idintUnique ID of the vendor.39499382
merchant_namestring(31)Unique Digistore24-name of the vendor.KlausMeier
order_idstring(31)The order-ID followed by a dash, the form id or the form number.A1B2D3E4-12345-1
order_datestring(10)Date of the order.2013-03-31
order_timestring(8)Time of the order.15:57:34
order_date_timestring(19)Date and time of the order.2013-03-31 15:57:34
order_billing_statusstring(15)Possible values:paying (only for rebilling; Payments are active); aborted; unpaid; reminding; completed (only for single payment and installments. The single payment is completed / All installment payments are completed)completed
product_idint

form_no


form_count


data-XXXXXstringFor each field of the custom form, a field data-XXXXX is added, where XXXXX is the (internal) name of the field.

Test Event

Parameter nameTypeDescriptionExample value
ipn_versionfloatCurrent version of the IPN-interface.1.2
api_modestring(4)Indicates test mode. Possible value is only “test“.test
merchant_idintUnique ID of the vendor.39499382
merchant_namestring(31)Unique Digistore24-name of the vendor.JohnSmith
product_idsstring(10000)Comma-separated list of the vendor's product-IDs (or empty, if the vendor has not yet created any products).123456, 123456, 78900,9865

SHA-Signature

We add to our request a SHA-512-signature. This allows you to verify the integrity of the transferred data.

Download PHP example script.

Example

The ipn request contains these parameters:

Parameter nameValue
buyer_emailclaus@domain-xyz.de
payment_idPAYID-39-22012
order_id273732
transaction_amount17.00
transaction_currencyUSD

To create the string to hash

  1. Put all parameters in one line without line breaks (We have inserted the line breaks for better readability)
  2. Do not add the parameter sha_sign to the hash.
  3. Sort the parameters by the name (not case sensitive).
  4. create a SHA512 hash of that string

Example string to hash:

buyer_email=claus@domain-xyz.dexxxxxorder_id=273732xxxxxpayment_id=PAYID-39-22012xxxxxtransaction_amount=17.00xxxxxtransaction_currency=USDxxxxx

Example signature:

342770076245D14ED7DF4D2E5D82216D7EDF8F9E7969B5964C9C5DCB53E962BBECD545E90422B5329C69554FD8B1A7E7410736615FCA7FB5CBB3624CC016E4BC

For every IPN call, the SHA-signature is sent as parameter “sha_sign”.