# US 11,907,983 B2 · Systems and methods for proof of application ownership

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,983 B2
- Document ID: US11907983B2
- Status: Granted
- Kind: B2
- Application number: 17/686,971
- Filed: 2022-03-04
- Published: 2022-06-16
- Granted: 2024-02-20
- Earliest claimed: 2020-03-02
- Assignees: Stripe, Inc.
- Applicants: Stripe, Inc.
- Inventors: Joseph Patrick Kirwin
- Web page: https://patentgrep.com/patent/US11907983B2

## CPC

- G06Q 30/0609: {Qualifying participants for shopping transactions (payment transaction verification G06Q20/401)}
- G06Q 2220/00: Business processing using cryptography
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 3)

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

### Claim 5 (depends on 4)

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.

### Claim 6 (depends on 3)

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.

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 1)

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

### Claim 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.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 11)

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

### Claim 14 (depends on 13)

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

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 14)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 11)

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.

### Claim 19 (depends on 11)

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.

### Claim 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.
