IP Library Granted Patent US 12,288,234
Granted Patent B2
US 12,288,234 · App. 18/541,862 · Granted Apr 29, 2025

Systems and methods for proof of application ownership

Inventor: Joseph Patrick Kirwin (Victoria, CA)
Assignee: Stripe, Inc.
G06Q30/0609G06Q2220/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,288,234
App. No.
18/541,862
Granted
Apr 29, 2025
Kind
B2
Abstract

A method and apparatus for a commerce platform providing proof of application ownership of a network distributable application are described. The method may include receiving a request to approve an application developed by a merchant system, wherein the application includes an application programming interface (API) component, a software development kit (SDK) component, or a combination thereof provided by the commerce platform to the merchant system. The method may also include generating a unique identifier (ID) for the application to be included as metadata within the application. Furthermore, the method may include obtaining, from an application information system, data describing the application, and extracting an ID from metadata in the data obtained by the application information system. Then, the method may include that in response to determining that the ID extracted from the metadata matches the unique ID, associating the merchant with the application in a merchant account at the commerce platform and approving the application for interacting with the commerce platform.

Claims (60)

1. A method for a service provider system verifying proof of application ownership of a network distributable application, the method comprising:

querying, by the service provider system, an application information system for an application package associated with an application identifier (ID), the application package describing an application developed by an application developer system;

receiving, from the application information system, an application package associated with the application ID;

extracting a purported unique ID from the application package received from the application information system;

accessing, in a data store of the server provider system, a unique ID generated by the service system and associated with the application ID in the data store; and

in response to determining that the purported unique ID extracted from the data matches a unique ID generated by the service provider system, approving the application for interacting with the service provider system.

2. The method of claim 1 , further comprising:

in response to determining that the purported unique ID extracted from the data matches the unique ID generated by the service provider system, binding, in the data store, the application with the application ID, the unique ID, and an identifier of the application developer system.

3. The method of claim 2 , wherein approving the application for interacting with the service provider system further comprises:

enabling an exchange of data between the service provider system and a user system executing the application in response to a verification by the service provider system that the user system is executing the application having the application ID and the unique ID bound to the identifier of the application developer system within the data store.

4. The method of claim 1 , wherein extracting the purported unique ID from the application package, further comprises:

locating a manifest file in the application package; and

extracting the unique ID from a metadata field in the manifest file of the application package.

5. The method of claim 4 , further comprising:

generating a snippet of code to be included in the metadata field of the manifest file of the application package, the snippet of code comprising a name, value pair to be included in the manifest file prior to the application package being uploaded by the application developer system to an online application marketplace, and wherein the application ID and the unique ID respectively form the name, value pair.

6. The method of claim 1 , wherein the application is distributed to other systems via an online application marketplace.

7. The method of claim 1 , wherein the unique ID is a cryptographic nonce generated by the service provider system, and comprises a 16-bit, 32-bit, 64-bit, or 128-bit nonce value.

8. The method of claim 1 , wherein prior to the querying of the application information system, the method further comprises:

receiving, by the service provider system, a request to approve the application developed by the application developer system, the application identified in the request by the application ID, wherein the application includes an application programming interface (API) component, a software development kit (SDK) component, or a combination thereof provided by the service provider system to the application developer system for accessing services of the service provider system; and

generating the unique ID for the application to be included within the application; and

associating, in the data store of the service provider system, the unique ID with the application ID.

9. The method of claim 1 , further comprising:

verifying the application developer system is associated with an existing account at the service provider system based at least in part on verification of an account password, an encryption key, or a combination therefor; and

associating, in the data store, the application ID with the existing account of the application developer system at the service provider system.

10. A non-transitory computer readable storage medium including instructions that, when executed by a processor, cause the processor to perform operations for providing proof of a service provider system verifying proof of application ownership of a network distributable application, the operations comprising

querying, by the service provider system, an application information system for an application package associated with an application identifier (ID), the application package describing an application developed by an application developer system;

receiving, from the application information system, an application package associated with the application ID;

extracting a purported unique ID from the application package received from the application information system;

accessing, in a data store of the server provider system, a unique ID generated by the service system and associated with the application ID in the data store; and

in response to determining that the purported unique ID extracted from the data matches a unique ID generated by the service provider system, approving the application for interacting with the service provider system.

11. The non-transitory computer readable storage medium of claim 10 , the operations further comprising:

in response to determining that the purported unique ID extracted from the data matches the unique ID generated by the service provider system, binding, in the data store, the application with the application ID, the unique ID, and an identifier of the application developer system.

12. The non-transitory computer readable storage medium of claim 11 , wherein operations for approving the application for interacting with the service provider system further comprise:

enabling an exchange of data between the service provider system and a user system executing the application in response to a verification by the service provider system that the user system is executing the application having the application ID and the unique ID bound to the identifier of the application developer system within the data store.

13. The non-transitory computer readable storage medium of claim 10 , wherein operations for extracting the purported unique ID from the application package, further comprise:

locating a manifest file in the application package; and

extracting the unique ID from a metadata field in the manifest file of the application package.

14. The non-transitory computer readable storage medium of claim 13 , the operations further comprising:

generating a snippet of code to be included in the metadata field of the manifest file of the application package, the snippet of code comprising a name, value pair to be included in the manifest file prior to the application package being uploaded by the application developer system to an online application marketplace, and wherein the application ID and the unique ID respectively form the name, value pair.

15. The non-transitory computer readable storage medium of claim 10 , the operations further comprising:

verifying the application developer system is associated with an existing account at the service provider system based at least in part on verification of an account password, an encryption key, or a combination therefor; and

associating, in the data store, the application ID with the existing account of the application developer system at the service provider system.

16. A service provider system that verifies proof of application ownership of a network distributable application, comprising:

a memory storing one or more instructions; and

a processor configured to execute the one or more instructions stored in the memory, which when executed by the processor cause the service provider system to perform operations comprising:

querying an application information system for an application package associated with an application identifier (ID), the application package describing an application developed by an application developer system;

receiving, from the application information system, an application package associated with the application ID;

extracting a purported unique ID from the application package received from the application information system;

accessing, in a data store of the server provider system, a unique ID generated by the service system and associated with the application ID in the data store; and

in response to determining that the purported unique ID extracted from the data matches a unique ID generated by the service provider system, approving the application for interacting with the service provider system.

17. The service provider system of claim 16 , the service provider system is caused to perform further operations comprising:

in response to determining that the purported unique ID extracted from the data matches the unique ID generated by the service provider system, binding, in the data store, the application with the application ID, the unique ID, and an identifier of the application developer system.

18. The service provider system of claim 17 , wherein the operations for approving the application for interacting with the service provider system further comprise operations causing the service provider system to perform:

enabling an exchange of data between the service provider system and a user system executing the application in response to a verification by the service provider system that the user system is executing the application having the application ID and the unique ID bound to the identifier of the application developer system within the data store.

19. The service provider system of claim 16 , wherein the operations for extracting the purported unique ID from the application package further comprise operations causing the service provider system to perform:

locating a manifest file in the application package; and

extracting the unique ID from a metadata field in the manifest file of the application package.

20. The service provider system of claim 16 , the service provider system is caused to perform further operations comprising:

verifying the application developer system is associated with an existing account at the service provider system based at least in part on verification of an account password, an encryption key, or a combination therefor; and

associating, in the data store, the application ID with the existing account of the application developer system at the service provider system.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 074264/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2024
From: KIRWIN, JOSEPH PATRICK
To: STRIPE, INC.
Reel/Frame 068542/0233 →
Continuity (3)
Continuation 17686971 · Mar 4, 2022
Continuation 16806869 · Mar 2, 2020
Related Publication 20240119499A1 · Apr 11, 2024
References Cited (3)
US 10659434B1 · Kim · 2020 [cited by examiner]
US 20210089497A1 · Zhou et al. · 2021 [cited by applicant]
US 20210117251A1 · Cristofi et al. · 2021 [cited by applicant]