Apple StoreKit Promo Offer Signature Generator

Generate Apple StoreKit promotional offer signatures in your browser using your .p8 key. This tool signs the required UTF-8 string (with invisible separators) using ECDSA and outputs a base64-encoded DER signature per Apple’s documentation. No backend required to create test signatures — your .p8 key never leaves your browser. This tool is provided for testing and not for creating production signatures.

The app bundle identifer

The private key identifier for In-App Purchase key or Xcode Subscription Offer Key

The subscription product identifier. See the Product ID field in App Store Connect.

The Promo Offer Identifier field in App Store Connect when configuring a promotional offer.

PKCS #8 private key  from App Store Connect Users and Access > Integrations > In-App Purchase or from Xcode > Editor > Subscription Offers Key for local testing.

This is is an optional UUID field that must match the .appAccountToken value sent to StoreKit 2 at checkout. If not set, this part of the promo signature should be left blank.

Generate UUID

A one-time UUID value. Generate a new nonce for every signature. The string representation of the nonce you use in the signature must be lowercase.

Use Current Timestamp

A timestamp your server generates in UNIX time format, in milliseconds. The timestamp keeps the offer active for 24 hours.

The raw combined string, including the invisible \u2063 separaters required by Apple.

A debug output that converts the invisible\u2063 separaters to ⟨␣⟩ for debugging.

The final signed sigurature ready to be passed to StoreKit 2 at checkout for testing. The signed signature is a base64 encoded version of the DER-encoded ECDSA signature.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.