IP Library Granted Patent US 11,907,983
Granted Patent B2
US 11,907,983 · App. 17/686,971 · Granted Feb 20, 2024

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 11,907,983
App. No.
17/686,971
Granted
Feb 20, 2024
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 (53)

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

receiving, by the service provider system, a request to approve an application developed by an application developer system, the application identified in the request by an application identifier (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;

generating a unique ID for the application to be included within the application, the unique ID associated with the application ID in a data store of the service provider system;

obtaining, by the service provider system from an application information system, data describing the application;

extracting an ID from the data obtained from the application information system; and

in response to determining that the ID extracted from the data matches the unique ID that is associated with the application ID, binding, in an accounts data store, the application with the application ID, the unique ID, and an identifier of the application developer system, and approving the application for interacting with the service provider system.

2. 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.

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

4. The method of claim 3 , wherein the application ID is unique to the application in the online application marketplace.

5. The method of claim 4 , 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 accounts data store, the application ID in the request with the existing account of the application developer system at the service provider system.

6. The method of claim 3 , wherein generating the unique ID comprises:

generating a snippet of code to be included in a manifest file of an application package for the application, 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 the online application marketplace, and wherein the application ID and the unique ID respectively form the name, value pair.

7. The method of claim 6 , wherein the obtaining, from the application information system, data describing the application, and extracting the ID from the data obtained by the application information system, further comprises:

querying, with the application ID, the application information system for an application package associated with the application ID, wherein the application information system obtains the application package associated with the application ID from the online application marketplace when the application is available for download from the online application marketplace;

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

locating a manifest file in the application package; and

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

8. The method of claim 1 , where approving the application for interacting with the service provider system further comprises:

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

9. The method of claim 1 , wherein the API component, the SDK component, or the combination thereof are executed by the application to interact with the service provider system during a transaction initiated by the application with a user of the application.

10. The method of claim 1 , wherein the application is a mobile device application.

11. 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 application ownership of a network distributable application by a service provider system, the operations comprising:

receiving a request to approve an application developed by an application developer system, the application identified in the request by an application identifier (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;

generating a unique ID for the application to be included within the application, the unique ID associated with the application ID in a data store of the service provider system;

obtaining, from an application information system, data describing the application;

extracting an ID from the data obtained from the application information system; and

in response to determining that the ID extracted from the data matches the unique ID that is associated with the application ID, binding, in an accounts data store, the application with the application ID, the unique ID, and an identifier of the application developer system, and approving the application for interacting with the service provider system.

12. The non-transitory computer readable storage medium of claim 11 , 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.

13. The non-transitory computer readable storage medium of claim 11 , wherein the application is distributed to other systems via an online application marketplace.

14. The non-transitory computer readable storage medium of claim 13 , wherein the application ID is unique to the application in the online application marketplace.

15. The non-transitory computer readable storage medium of claim 14 , 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 accounts data store, they application ID in the request with the account of the application developer system at the service provider system.

16. The non-transitory computer readable storage medium of claim 14 , wherein the metadata file is a manifest file of an application package for the application, wherein generating the unique ID comprises:

generating a snippet of code to be included in a manifest file of an application package for the application, 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 to the online application marketplace, and wherein the application ID and the unique ID respectively form the name, value pair.

17. The non-transitory computer readable storage medium of claim 16 , wherein the obtaining, from the application information system, data describing the application, and extracting the ID from the data obtained by the application information system, further comprises:

querying, with the application ID, the application information system for an application package associated with the application ID, wherein the application information system obtains the application package associated with the application ID from the online application marketplace when the application is available for download from the online application marketplace;

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

locating a manifest file in the application package; and

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

18. The non-transitory computer readable storage medium of claim 11 , where approving the application for interacting with the service provider system further comprises:

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

19. The non-transitory computer readable storage medium of claim 11 , wherein the API component, the SDK component, or the combination thereof are executed by the application to interact with the service provider system during a transaction initiated by the application with a user of the application.

20. A service provider system that provides proof of application ownership of a network distributable application, the service provider system 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 process to perform operations comprising:

receiving a request to approve an application developed by an application developer system, the application identified in the request by an application identifier (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,

generating a unique ID for the application to be included within the application, the unique ID associated with the application ID in a data store of the service provider system,

obtaining, from an application information system, data describing the application,

extracting an ID from the data obtained from the application information system, and

in response to determining that the ID extracted from the data matches the unique ID that is associated with the application ID, binding, in an accounts data store, the application with the application ID, the unique ID, and an identifier of the application developer system, and approving the application for interacting with 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 →