acknowledge purchase

This block is part of the android group and was last modified in core v15.0.0.

acknowledge purchase v15.0.0

Tells Play you have granted what the user bought. Not optional: Google revokes and refunds any purchase left unacknowledged for three days, so a flow that verifies a purchase and stops here gives the money back : days later, quietly.

In pins 6 + flow
  • flow
  • connection androidconnection required
  • package name value required

    Android app package

  • product id value required

    The purchased product / subscription id.

  • token value required

    The purchase token to acknowledge.

  • is subscription condition

    On for a subscription, off for a one-time product : they are different endpoints.

  • developer payload value

    Optional string stored alongside the purchase.

Out pins 4 + flow
  • flow
  • success condition

    True when acknowledged : including when it already was.

  • already acknowledged condition

    True when Play reported it was acknowledged before. Treated as success on purpose: retries and redelivered notifications must not look like the purchase went bad.

  • response object
  • error value
play
google play
acknowledge
ack
iap
in app purchase
billing
subscription

Google refunds any purchase that is not acknowledged within three days, so this block is not optional bookkeeping: it is the step that keeps the payment. Verify first, unlock the entitlement, then call acknowledge purchase on the true side of the branch. The already_acknowledged pin means a retry is safe, which matters because this chain will be re-run by a client that lost its connection halfway.

Studio canvas example for the acknowledge purchase block: acknowledging a purchase, or losing the money.

Version history

Introduced in v15.0.0.

Service documentation

External API reference This block wraps a third-party service. Click here for the service's own documentation of the underlying endpoint.
Back to android Return to the main group to view all sub-groups Back to android Return to the group to view all blocks within this group