Network-level policy verification for network-based switching
By using UUEK to achieve credentialless exchange, the security and complexity issues caused by credential dependence in existing technologies are resolved, enabling secure and flexible network value exchange while reducing computing resource requirements and the risk of sensitive information exposure.
Patent Information
- Application Number
- CN202380040605.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-28
- Filing Date
- 2023-08-03
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2043-08-03
AI Technical Summary
Existing network-based value exchange technologies rely on persistent credentials, which leads to security risks, high regulatory costs, increased network complexity, and a lack of flexibility and object-level verification capabilities.
Using a Universally Unique Temporary Key (UUEK) as an intermediary computing platform, persistent credentials are eliminated, and credentialless exchange is achieved through a flexible interface. Real-time object-level verification and context information transmission are allowed, and UUEK is mapped through the intermediary platform for authorized exchange.
It enables secure, flexible, and seamless value exchange, reduces computing resource requirements, increases network throughput, and reduces the risk of sensitive information exposure.
Smart Images

Figure CN119213731B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 63 / 370,275, filed August 3, 2022, and U.S. Patent Application Serial No. 18 / 343,433, filed June 28, 2023, the entire contents of which are incorporated herein by reference, including any drawings, tables, figures, and appendices. Technical Field
[0003] Embodiments of this disclosure typically involve credentialless value exchange between multiple entities in a value system. Background Technology
[0004] Given the limitations of existing exchange processing technologies and architectures, the embodiments of this disclosure address the technical challenges associated with network-based value exchange. Existing processes for performing exchanges over computing networks rely on the use of persistent credentials, such as payment credentials (e.g., card numbers, usernames, passwords, bank routing numbers, account numbers, etc.) and their proxies, exposing the recipient of these credentials to fraud, regulatory and compliance costs, and reputational risks. Furthermore, due to the static nature of traditional credentials, users must accept the risk of financial loss, damage to credit scores, identity theft, and other consequences whenever they provide their credentials for a transaction. While stringent communication protocols, data governance procedures, and authentication schemes are typically employed to address the inherent insecurity of persistent credentials, each of these introduces additional technical problems due to increased overhead and complexity of network-based transactions, without solving the fundamental data security issues.
[0005] For example, traditional service providers managing user accounts can limit the exposure of user accounts by using disclaimers that prevent users from providing their credentials to certain third parties. This can lead to network congestion as a limited number of authorized parties become overloaded by requests from the entire group. Furthermore, authorized parties need to register users by obtaining sensitive persistent credentials (e.g., usernames, passwords, routing / transmission credentials, etc.) from them, and subsequently manage a large number of persistent credentials for multiple registered users. This provides a single attack vector for malicious actors to obtain sensitive user information from a user group. To resist such attacks, traditional transaction processing entities need to employ costly, resource-intensive, and robust data governance procedures and authentication schemes, but these schemes are imperfect and still vulnerable to penetration.
[0006] Other technologies for addressing data security issues include limiting exchange communications, such as exchange communications for financial transactions, to strict messaging standards, e.g., ISO messaging standards, which lack flexibility and are designed to not provide contextual data (e.g., object identifiers) for transactions. By doing so, these technologies, among other things, prevent the verification of object-level attributes involved in the exchange, which would otherwise provide seamless network-based exchanges. For example, conventional exchange networks lack the ability to pass object-level details, and thus, the ability to determine individual objects involved in an exchange request as acceptable for a value-based exchange environment. Accordingly, conventional approaches for handling limitations on value-based exchanges require handling the limitations at the point of sale system and rely on human intervention, which can be unreliable, insecure, and time consuming. Thus, by using such communication standards, conventional exchange networks increase the security of the network at the expense of exchange functionality.
[0007] Various embodiments of the present disclosure make significant contributions to various existing network-based exchange processing technologies by addressing each of these technical challenges. SUMMARY
[0008] Various embodiments of the present disclosure disclose a secure intermediary computing platform and computing services that facilitate value-based exchange execution without credentials, which utilizes UUEKs (Universally Unique Endorsement Keys) to eliminate the use of persistent credentials. To this end, the intermediary computing platform can facilitate interactions between one or more member platforms to register users and / or user instruments into a value exchange system driven by new temporary data structures (referred to herein as UUEKs). Unlike traditional exchange systems, the intermediary computing platform does not receive or rely on persistent user credentials or instrument credentials to register users and / or user instruments. This elimination of such credentials enables the use of new, more flexible interfaces (e.g., application program interfaces (APIs)) that the intermediary computing platform utilizes to communicate with different network members to register users, user instruments, and instrument policies without exposing user credentials at any step in the process. Once registered, the intermediary computing platform can issue UUEKs to the member platforms, which can replace traditional persistent credentials. The issued UUEKs do not reflect persistent credentials or any other sensitive user information or instrument information. The interfaces between the member platforms and the intermediary platform can allow (i) users to present the UUEKs issued by the member platforms to the intermediary platform without explicit reference to persistent credentials, and (ii) the intermediary platform to map the issued UUEKs to instrument keys of the same or another member platform and provide the instrument keys to the member platforms to authorize value-based exchanges. In this way, network-based transactions can be authorized in a seamless process without exposing sensitive user information or instrument information that can be vulnerable to cyber attacks.
[0009] By doing so, some techniques of the present disclosure enable the use of flexible interfaces (e.g., APIs) between entities of value-based exchanges. These interfaces can allow requests and / or responses between entities that allow the transmission of contextual information, such as object identifiers, during value-based exchange execution. In this way, the execution of value-based exchanges can be predicted based at least in part on determinations of object-level details of the value-based exchanges. As described herein, this allows the intermediary platform to implement instrument-specific policies without the risk of exposing sensitive user information or financial information. Finally, the techniques of the present disclosure enable additional flexibility (e.g., through the use of new interfaces, etc.) and security (e.g., elimination through persistent credentials, etc.) while reducing the computational power requirements of exchange processing relative to traditional techniques and enabling significantly greater network throughput for exchange processing.
[0010] In some embodiments, a computer-implemented method comprises: receiving, by one or more processors and using a partner interface, an exchange request to perform a value-based exchange, wherein the exchange request indicates a universally unique temporary key (UUEK) containing an exchange identifier; identifying, by the one or more processors, an exchange data object based at least in part on the exchange identifier, wherein the exchange data object includes a tool identifier of a service provider tool of a member platform; determining, by the one or more processors, one or more valid objects and one or more invalid objects of the exchange request based at least in part on a member policy corresponding to the member platform; providing, by the one or more processors and using a service provider interface, an exchange authorization request to the member platform, wherein the exchange authorization request indicates the tool identifier and the one or more valid objects of the exchange request; receiving, by the one or more processors and using the service provider interface, an exchange authorization response, the exchange authorization response indicating at least one of an exchange approval or an exchange denial; and providing, by the one or more processors and using the partner interface, an exchange response based at least in part on the exchange authorization response, wherein the exchange response indicates (i) the exchange approval or the exchange denial and (ii) the one or more invalid objects of the exchange request.
[0011] In some embodiments, a computing system comprises a memory and one or more processors communicatively coupled to the memory. The one or more processors are configured to: receive, using a partner interface, an exchange request to perform a value-based exchange, wherein the exchange request indicates a universally unique temporary key (UUEK) containing an exchange identifier; identify an exchange data object based at least in part on the exchange identifier, wherein the exchange data object includes a tool identifier of a service provider tool of a member platform; determine one or more valid objects and one or more invalid objects of the exchange request based at least in part on a member policy corresponding to the member platform; provide, using a service provider interface, an exchange authorization request to the member platform, wherein the exchange authorization request indicates the tool identifier and the one or more valid objects of the exchange request; receive, using the service provider interface, an exchange authorization response, the exchange authorization response indicating at least one of an exchange approval or an exchange denial; and provide, using the partner interface, an exchange response based at least in part on the exchange authorization response, wherein the exchange response indicates (i) the exchange approval or the exchange denial and (ii) the one or more invalid objects of the exchange request.
[0012] In some embodiments, one or more non-transitory computer-readable media comprise instructions that, when executed by one or more processors, cause the one or more processors to: receive, using a partner interface, an exchange request to perform a value-based exchange, wherein the exchange request indicates a universally unique temporary key (UUEK) containing an exchange identifier; identify, based at least in part on the exchange identifier, an exchange data object, wherein the exchange data object comprises a tool identifier of a service provider tool of a member platform; determine one or more valid objects and one or more invalid objects of the exchange request based at least in part on a member policy corresponding to the member platform; provide, using a service provider interface, an exchange authorization request to the member platform, wherein the exchange authorization request indicates the tool identifier and the one or more valid objects of the exchange request; receive, using the service provider interface, an exchange authorization response indicating at least one of an exchange approval or an exchange denial; and provide, using the partner interface, an exchange response based at least in part on the exchange authorization response, wherein the exchange response indicates (i) the exchange approval or the exchange denial and (ii) the one or more invalid objects of the exchange request. BRIEF DESCRIPTION OF DRAWINGS
[0013] Accordingly, after an overview of the present disclosure, reference will now be made in detail to the drawings, which are not necessarily drawn to scale, and wherein:
[0014] Figure 1 is an example diagram of a computing ecosystem in accordance with one or more embodiments of the present disclosure;
[0015] Figure 2 is an example schematic diagram of a computing platform in accordance with one or more embodiments of the present disclosure;
[0016] Figure 3 is an example schematic diagram of a client device in accordance with one or more embodiments of the present disclosure;
[0017] Figure 4 is an example block diagram of an example credentialless value exchange system in accordance with one or more embodiments of the present disclosure;
[0018] Figure 5 is an example data diagram for facilitating credentialless value exchange in accordance with one or more embodiments of the present disclosure;
[0019] Figure 6 is provided a process flow for facilitating credentialless value exchange in accordance with one or more embodiments of the present disclosure;
[0020] Figure 7 is provided a process flow for determining objects of a value-based exchange in accordance with one or more embodiments of the present disclosure; and is provided a process flow for determining objects of a value-based exchange in accordance with one or more embodiments of the present disclosure; and
[0021] Figure 8 A messaging flow for verifying value-based exchanges is provided in accordance with one or more embodiments of the present disclosure. DETAILED DESCRIPTION
[0022] Various embodiments of the present disclosure are described more fully below with reference to the accompanying drawings, in which some, but not all embodiments of the present disclosure are shown. Indeed, the present disclosure can be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. The term "or" is used herein in both the alternative and conjunctive sense, unless otherwise indicated. The terms "illustrative" and "exemplary" are used merely to refer to certain embodiments of the present disclosure and do not imply quality level. Terms such as "calculate," "determine," "generate," and / or the like are used herein to mean the creation, modification, or identification of data by a device. Furthermore, "based on," "based upon," and / or the like are used interchangeably herein to mean based at least in part on, such that they are not necessarily limited to based solely on the elements listed. Like reference numerals refer to like elements throughout.
[0023] I. SUMMARY AND TECHNICAL ADVANTAGES
[0024] Various embodiments of the present disclosure provide technical solutions for managing network-based exchanges. In various embodiments, an exchange platform can be configured to facilitate non-currency value exchanges between one or more member platforms. These exchanges can be facilitated in real-time without persistent currency, which can expose members to financial, legal, reputational, or other risks. Accordingly, in various embodiments, a client device can purchase, sell, and / or perform value-based exchanges in real-time over any network without exposing sensitive information that is susceptible to network-based attacks.
[0025] Embodiments of the present disclosure provide improved object-level exchange verification techniques with new interfaces and data transformations, and policy matching techniques to increase data security and communication flexibility while reducing the need for computational resource expenditure to protect sensitive data communicated over a network.
[0026] For example, some techniques of the present disclosure retrieve data objects and convert the data objects into unique data keys that can only be recognized by approved entities. The data keys can be provided and / or established by leveraging exchange interfaces between exchange platforms and other member platforms in an exchange network. Once established, the data keys can be mapped to sensitive credentials stored in a source platform (e.g., a service provider platform) without requiring network transmission of the sensitive credentials. Future communications that facilitate value-based exchanges can substitute the data keys for traditional persistent credentials, enabling the source platform to recognize the persistent credentials and / or perform one or more actions with respect to particular tools associated with the persistent credentials. In this way, the exchange platform can facilitate exchanges using keys (and / or other identifiers) that cannot themselves be traced to potentially sensitive information. This, in turn, enables the exchange platform to comprehensively track, facilitate, and distribute network-based communications without exposing members to network attacks.
[0027] Some embodiments of the present disclosure present network-based exchange processing techniques for facilitating credential-less exchanges. To this end, some techniques of the present disclosure leverage a new data structure, UUEK, that can replace traditional persistent credentials used to authorize value-based exchanges. Using the techniques of the present disclosure, UUEKs can be securely issued across member platforms to allow users to perform value-based exchanges using identifiers that can be recognized by a single party (i.e., the exchange platform). The UUEKs can be mapped to unique identifiers that can reference sensitive information without directly identifying (and thereby exposing) the sensitive information. For example, the unique identifiers can reference mappings that can only be interpreted by the source platform, such that a malicious party unaffiliated with the exchange platform cannot use the identifiers. In this way, the exchange platform can distribute, track, and facilitate exchanges without subjecting the member platforms to data security risks. Moreover, the exchange platform can continually update, modify, and / or redistribute UUEKs to member platforms to continually adapt to the UUEKs in real-time. In this way, the exchange platform can provide technical improvements for data and network security while reducing computational resource demands (e.g., for securely encrypting persistent credentials) to facilitate value-based exchanges.
[0028] Some techniques of the present disclosure can utilize the credential-less exchange of the present disclosure to enable the use of flexible exchange interfaces between members of an exchange network. Unlike traditional exchange interfaces, the credential-less exchange allows for the use of interfaces that can provide contextual information (e.g., object-level details) associated with a requested value-based exchange. By doing so, the intermediary computing platform can receive information necessary to validate individual objects of a value-based exchange against various exchange criteria (e.g., member policies). In this way, the intermediary computing platform can register different exchange criteria customized to specific members of the exchange network to perform object validation in real-time, which is customized to each member of the exchange network. The exchange criteria can be updated in real-time (e.g., daily updates, etc.) to continually improve the validation techniques for value-based exchanges against a changing environment. Finally, this enables a network-managed solution in which a single computing entity (intermediary computing platform) can perform exchange criteria in real-time on behalf of multiple members. The network-managed solution eliminates computational inefficiencies and errors associated with maintaining the integrity of exchange criteria across multiple different computing entities. For example, using the techniques of the present disclosure, a single update from a member can be applied at the network level in real-time to ensure absolute compliance with changing criteria. By handling exchange validation, the techniques of the present disclosure reduce the requirements for secondary computing entities in the exchange network, allowing new entrants to support unique items without having to account for the complexity of the computing solution used by the new entrants.
[0029] Example inventive and technical advantage embodiments of the present disclosure include: (i) data conversion, mapping, and processing schemes for facilitating network-based credential-less exchanges, (ii) exchange interfaces and network-based communication schemes for improving network security across platform communications, (iii) temporary data structures and data management techniques for distributing temporary data structures to facilitate real-time, secure, and dynamic value-based exchanges, and (iv) real-time object validation techniques for validating individual objects of an exchange.
[0030] II. Example Definitions
[0031] In some embodiments, the term“exchange platform” refers to a computing entity configured to facilitate credential-less value exchanges for one or more members of an exchange network. The exchange platform can include one or more processing devices, storage devices, etc. that are physically coupled and / or wirelessly coupled and configured to collectively (and / or individually) perform one or more computing tasks for facilitating value system agnostic exchanges. In some examples, the exchange platform can include, define, and / or otherwise utilize one or more APIs to facilitate communications (e.g., requests and responses, etc.) between multiple members. As described herein, the APIs can be utilized to facilitate secure exchanges between one or more members of any value system.
[0032] In some embodiments, the term "member" refers to an entity that cooperates with the exchange platform to participate in a value exchange. For example, a member can include (i) a partner that receives value using the exchange platform, (ii) a service provider that provides value using the exchange platform, and / or (iii) both a partner and a service provider. As used herein, a member can be referred to as a partner when the member receives value through a value exchange, and / or a member can be referred to as a service provider when the member provides value through a value exchange. Accordingly, the same member can be a partner or a service provider depending on the member's role in a value exchange. For example, a member can be a partner that receives value in a value exchange. The same member can be a service provider that provides value in another value exchange. In some examples, the same member can be both a partner and a service provider in the same value exchange, such that the member provides and receives value using the exchange platform in a single member value exchange.
[0033] In some embodiments, a member is a partner when the member utilizes a service provided by a service provider. A partner can include any value-seeking entity in any value system. For example, in a financial value system, a partner can include a merchant (e.g., a retailer, a brick-and-mortar business, etc.) that can utilize a service provider (e.g., a financial institution) to obtain funds for a financial transaction. Additionally or alternatively, in an information value system, a partner can include a news publisher (e.g., a newspaper, a media organization, etc.) that can utilize a service provider (e.g., a news agency (e.g., an Associated Press, a news service, etc.)) to obtain information for an information transaction. It should be understood that the techniques of the present disclosure can be applied to any value system, and a partner can include a value-seeker of any corresponding value system.
[0034] In some embodiments, a member is a service provider when the member provides a service for a partner. A service provider can include a value source in any value system. For example, in a financial value system, a service provider can include a financial institution (e.g., a bank, a currency exchange platform, a credit union, etc.) that can provide access to funds for a financial transaction between one or more entities. Additionally or alternatively, in an information value system, a service provider can include a news agency (e.g., an Associated Press, a news service, etc.) that can provide source information for a news publisher to publish. It should be understood that the techniques of the present disclosure can be applied to any value system, and a service provider can include any value source for any corresponding value system.
[0035] In some embodiments, the term“service provider tool” refers to a mechanism used by a service provider to provide value on behalf of a particular user. The service provider tool can depend on the value system and / or the service provider. In some examples, the service provider tool can include an account opened at the service provider. For example, in a financial value system, the service provider tool can include a bank account (e.g., checking, savings, etc.), a brokerage account, a line of credit, etc. In an information value system, the service provider tool can include a subscription account, etc. In some examples, the service provider tool can include a virtual tool hosted by the service provider platform.
[0036] In some embodiments, the services provided by the service provider are subject to one or more policies. For example, the service provider can be associated with one or more member policies to verify the use of service provider tools maintained by the service provider.
[0037] For example, the service provider and / or service provider tools of the service provider can be associated with an entity that governs the use of one or more services provided by the service provider. For example, the service provider can facilitate an electronic benefit transfer (EBT) system that provides economic assistance for authorized food and household items, such as for a supplemental nutrition assistance program (“SNAP”), temporary assistance for needy families (“TANF”), women, infants, and children (“WIC”) special supplemental nutrition program, etc. As another example, the service provider can facilitate a healthcare program on behalf of a healthcare provider that limits benefits according to healthcare eligibility, procedure codes, procedure locations, etc.
[0038] Additionally or alternatively, the service provider can govern the use of its own services. For example, the service provider can maintain service provider tools for users of the service provider. The service provider can limit the service provider tools on behalf of the users, on behalf of one or more internal policies, etc. For example, the service provider can include a financial institution that allows one or more users to limit access to funds provided by the financial institution. In this way, the users can provide limited access to the service provider tools by establishing one or more member policies for the service provider tools.
[0039] In some embodiments, the term“member policy” refers to a data entity that defines one or more criteria for validating objects for value-based exchanges. A member policy can correspond to a member and / or a service provider tool of the member. For example, a member policy can define one or more criteria for validating objects based at least in part on one or more member-specific criteria. Additionally or alternatively, a member policy can define one or more criteria for validating objects based at least in part on one or more tool-specific criteria. Member-specific criteria can apply to a plurality of service provider tools associated with a member, while tool-specific criteria can apply to at least one of a plurality of service provider tools associated with a member.
[0040] A member policy can indicate a plurality of authorized and / or unauthorized policy attributes for value-based exchanges. Authorized policy attributes can indicate one or more objects, object attributes, and / or value exchange attributes that are authorized for use with a service provider tool for value-based exchanges in accordance with the member policy. Unauthorized policy attributes can indicate one or more objects, object attributes, and / or value exchange attributes that are restricted from use with a service provider tool for value-based exchanges in accordance with the member policy. In some examples, a member policy can define a plurality of authorized policy attributes, and a plurality of unauthorized policy attributes can include a plurality of undefined attributes. In some examples, a member policy can define a plurality of unauthorized policy attributes, and a plurality of authorized policy attributes can include a plurality of undefined attributes.
[0041] In some examples, a policy attribute can include an object identifier, one or more object attributes, and / or one or more value exchange attributes that identify an object and / or a quantity of one or more authorized / unauthorized objects.
[0042] For example, a member policy can include a plurality of object identifiers. The plurality of object identifiers can indicate a plurality of objects that have been authorized / unauthorized for acquisition (e.g., purchase, etc.) and / or return using the service provider tool. In some examples, the object identifiers can be global object identifiers. For example, the global object identifiers can be stock keeping unit (SKU) codes. Additionally or alternatively, the global object identifiers can be manufacturer part numbers (MPNs), global trade item numbers (GTINs), product or service names, international standard book numbers (ISBNs), universal product codes (UPCs), European Article Numbers (EANs), international article numbers (EINs), etc. In some examples, the object identifiers can include system object identifiers. For example, the system object identifiers can include identifiers corresponding to record data objects representing objects within the exchange platform (e.g., table identifiers, etc.). In some embodiments, the system object identifiers and the global object identifiers are the same.
[0043] As another example, the policy attributes can indicate one or more object attributes that indicate objects that have been authorized / unauthorized. The one or more object attributes can indicate one or more objects (e.g., having one or more different object identifiers, etc.) that have been authorized and / or unauthorized for acquisition and / or return using the service provider tool. For example, the object attributes can indicate categories of objects that are unauthorized for acquisition using the service provider tool (e.g., restricted substances, etc.) and / or categories of objects that are authorized for acquisition using the service provider tool (e.g., food items, etc.). Further, the object attributes can indicate categories of objects that are unauthorized for return using the service provider tool (e.g., perishable items, etc.) and / or categories of objects that are authorized for return using the service provider tool (e.g., non-perishable items, etc.).
[0044] As a further example, a policy attribute can include a value exchange attribute corresponding to a particular value-based exchange and / or an object included in the value-based exchange. For example, a value exchange attribute can include a threshold exchange value for a value-based exchange conducted using a service provider tool. Additionally or alternatively, a value exchange attribute can include a threshold object exchange value, a threshold object exchange quantity, and / or the like for an object included in a value-based exchange. A threshold object exchange value can indicate an authorized value for acquiring a particular object using a service provider tool. A threshold object exchange quantity can indicate an authorized quantity (e.g., weight, unit quantity, and / or the like) of a particular object that can be acquired (e.g., purchased, and / or the like) using a service provider tool.
[0045] In some embodiments, the term“record data object” refers to a data object representing an object that can be involved in a value-based exchange. In some examples, a record data object can be an internal representation of an object of an exchange platform. For example, an object can include a different unit of a value-based exchange for which value is being transferred. A record data object of an object can include a data object recording one or more aspects of the object (e.g., an object identifier, object attributes, and / or the like).
[0046] For example, a record data object can include an object identifier and / or one or more object attributes of a particular object associated with a value system. An object can be based at least in part on a value system. For example, in a financial value system, an object can be a tangible or intangible item, product, and / or the like that can be purchased in a currency unit in an exchange. In a healthcare value system, an object can be a healthcare procedure and / or the like that can be covered by a healthcare policy.
[0047] In some examples, an exchange platform can maintain and / or access an object data store including a plurality of record data objects. As described herein, an object data store can include a plurality of record data objects that are derived at least in part from one or more members of an exchange network.
[0048] In some embodiments, the term“object attribute” refers to a data entity describing a characteristic of an object. An object attribute can include an object-based attribute and / or an exchange-based attribute.
[0049] For example, object-based attributes can include spatial attributes, count attributes, value attributes, source attributes, ingredient attributes, category attributes, and / or any other attributes that describe characteristics of objects. For example, spatial attributes can indicate one or more dimensions (e.g., height, width, weight, etc.) of an object, value attributes can indicate a value (e.g., price, etc.) of an object, ingredient attributes can indicate one or more ingredients, components, etc. of an object, category attributes can indicate one or more categories (e.g., restricted substances, etc.) of an object, and / or the like. For example, one or more category attributes can indicate whether an object is associated with (i) one or more general store categories (e.g., produce, fruits, dairy, meat, grains, seeds, alcohol, tobacco, in-store consumables, hot foods, pharmacy, pet food, and non-foods), (ii) one or more medical categories (e.g., dental, eye care, general health, etc.), (iii) one or more information categories (e.g., international sources, domestic sources, etc., and / or the like). In some examples, ingredient attributes can indicate one or more components of an object, such as a volume percentage of alcohol in an object, one or more ingredients (e.g., meat, dairy, peanut products, tree nut products, soy products, etc.).
[0050] In some examples, object-based attributes can be based at least in part on a value system. For example, in at least financial-based value systems, object-based attributes can include one or more line item attributes, one or more line item adjustments, and / or the like. Line item attributes can include a sequence, a line item group, a product code, an item name, an item source (e.g., a supplier, a manufacturer, etc.), a description, a quantity, a quality (e.g., grams, kilograms, etc.), one or more spatial dimensions (e.g., length, width, height, volume, etc.), a unit amount, a unit tax, a line amount (e.g., an amount of a line item), a line tax, and / or the like. Line item adjustments can include an adjustment type (e.g., a manufacturer discount, a store discount, a return, a payment in cash, a payment in a gift card, a payment in another, etc.), an item, a product, or a service code, an item description, an item quantity, a unit item, an item quality (e.g., grams, kilograms, etc.), a unit amount, a unit tax, a line amount (e.g., an amount of a line item), a line tax, and / or the like.
[0051] In some examples, the one or more exchange-based attributes can indicate one or more aggregated exchange characteristics. For example, an exchange-based attribute can include a count attribute that describes a number of value-based exchanges involving a particular object. For example, the count attribute can indicate a number of units of the particular object acquired through the plurality of value-based exchanges. For example, as described herein, the exchange platform can increase the count attribute of an object each time the object is referenced in a value-based exchange. In some examples, the exchange platform can increase the count attribute of an object each time the object is authorized for acquisition, and / or decrease the count attribute of an object each time the object is authorized for return. In some examples, the record data object can include a plurality of count attributes that respectively identify a number of units of the object that have been acquired, a number of units of the object that have been authorized for acquisition, and / or a number of units of the object that have been requested for acquisition.
[0052] In some examples, the one or more exchange-based attributes can include exchange-specific characteristics. For example, an exchange-specific characteristic can include a source attribute that describes a location (e.g., a retailer, a physical store, a healthcare center, an information source, etc.) from which the object was acquired (e.g., purchased, etc.) through a value-based exchange. For example, the location can include a virtual location and / or a physical location. In some examples, the location can depend on the value system. For example, in a financial value system, the source attribute can identify a retailer, a particular physical store of the retailer, an online platform, etc. In a healthcare value system, the source attribute can be a virtual and / or physical healthcare center, etc. In an information value system, the source attribute can be an information source, etc.
[0053] In some examples, the record data object and / or the count attribute can be source-specific. For example, a different record data object and / or count attribute can be maintained for each source from which the object can be acquired. Additionally or alternatively, the record data object and / or the count attribute can be source-agnostic.
[0054] In some embodiments, the term "valid object" refers to an object of a value-based exchange that is authorized according to a member policy. For example, a valid object can correspond to an object identifier and / or one or more object attributes that are authorized by a member policy. For example, in a financial value system, a valid object can be a product or service that is eligible for purchase using a service provider tool. For example, a product can be a gallon of milk that can be associated with a SKU code and / or one or more object attributes (e.g., "category: dairy," "quantity: 1 gallon"). If the member policy corresponding to the service provider tool for the value-based exchange authorizes the SKU code and / or one or more object attributes ("category: dairy," "quantity: 1 gallon"), etc., then the product can be a valid object for the value-based exchange.
[0055] In some embodiments, the term "invalid object" refers to an object of a value-based exchange that is not authorized according to a member policy. For example, an invalid object can correspond to an object identifier and / or one or more object attributes that are not authorized by a member policy. For example, in a financial value system, an invalid object can be a product or service that is not eligible for purchase using a service provider tool. For example, a product can be a liter of alcohol that can be associated with a SKU code and / or one or more object attributes (e.g., "category: restricted substance," "quantity: 1 liter"). If the member policy corresponding to the service provider tool for the value-based exchange restricts the SKU code and / or one or more object attributes ("category: restricted substance," "quantity: 1 liter"), etc., then the product can be an invalid object for the value-based exchange.
[0056] In some embodiments, the term "exchange request" refers to a data entity that defines a request to perform a value exchange. An exchange request can be provided to an exchange platform from a member of an exchange network. An exchange request can include one or more request attributes. The one or more request attributes can include one or more object identifiers, object attributes, resolution flags, etc.
[0057] For example, the one or more request attributes can include a plurality of object identifiers that correspond to a plurality of objects associated with a value-based exchange. Additionally or alternatively, the one or more request attributes can include one or more object attributes of a plurality of objects. For example, the one or more object attributes can include one or more object-based attributes (e.g., one or more line item attributes), one or more exchange-based attributes (e.g., a quantity of an object, a location of an object, etc.). For example, an exchange request can indicate an exchange location from which to obtain an object.
[0058] In some examples, the request attributes can indicate one or more request resolution flags. The request resolution flags can indicate one or more requesting member requirements (e.g., partner requirements, etc.) for the value-based exchange. For example, one or more request resolution flags can be set by a member of the exchange network providing the exchange request to the exchange platform. In some examples, the request resolution flags can indicate a partial exchange authorization or a full exchange authorization. The partial exchange authorization can authorize a partial completion of the value-based exchange, while the full exchange authorization can only authorize a full completion of the value-based exchange. For example, the full exchange authorization can require verification of all objects referenced by the value-based exchange.
[0059] In some embodiments, the term“valid exchange data object” refers to a data object indicating one or more valid objects of the value-based exchange. In some examples, the valid exchange data object can be based at least in part on a comparison between the exchange request and the member policy corresponding to the exchange request. In some examples, the valid exchange data object can include a plurality of object identifiers and / or one or more object attributes of the one or more valid objects of the value-based exchange.
[0060] In some examples, the valid exchange data object can indicate an exchange value. The exchange value can be an aggregated value of each of the valid data objects. In some examples, the exchange value can be adjusted to satisfy the valid objects of the value-based exchange by modifying the exchange value from an initial exchange value using some techniques of the present disclosure.
[0061] In some examples, the valid exchange data object can indicate one or more object statuses of the one or more valid objects.
[0062] In some embodiments, the term“invalid exchange data object” refers to a data object indicating one or more invalid objects of the value-based exchange. In some examples, the invalid exchange data object can be based at least in part on a comparison between the exchange request and the member policy corresponding to the exchange request. For example, the invalid exchange data object can indicate a plurality of invalid objects of the value-based exchange. Additionally or alternatively, the invalid exchange data object can be based at least in part on the exchange request and the valid exchange data object. For example, the invalid exchange data object can indicate a plurality of invalid objects of the value-based exchange. For example, the invalid exchange data object can indicate a plurality of objects of the value-based exchange that are not included in the valid exchange data object.
[0063] The invalid exchange data object can include a plurality of object identifiers and / or one or more object attributes of the one or more invalid objects of the value-based exchange. In some examples, the invalid exchange data object can indicate one or more object statuses of the one or more invalid objects.
[0064] In some embodiments, the term "object status" refers to a data entity indicative of a determination and / or classification of an object relative to a value-based exchange. For example, an object status of a valid object can include an object qualified status, among others. As another example, an object status of an invalid object can include an object unqualified status, among others. An object status of an object that is not evaluated according to a member policy can include an object unevaluated status. An object status of an object that is not processed according to a member policy can include an object unspecified status.
[0065] In some embodiments, the term "exchange authorization request" refers to a data entity defining a request for a member to perform a value-based exchange. In some embodiments, an exchange authorization request is provided from an exchange platform to a member of an exchange network. For example, an exchange authorization request can be provided to a service provider of an exchange network in response to an exchange request from a partner of the exchange network. In some examples, an exchange authorization request can indicate valid exchange data objects for an exchange request. For example, an exchange authorization request can indicate one or more valid data objects, a valid exchange value, one or more object statuses associated with one or more valid data objects, among others. In some examples, an exchange authorization request can indicate invalid exchange data objects for an exchange request. For example, an exchange authorization request can indicate one or more invalid data objects, one or more object statuses associated with one or more invalid data objects, among others.
[0066] In some embodiments, the term "exchange authorization response" refers to a data entity defining a response to an exchange authorization request. In some embodiments, an exchange authorization response is provided from a member of an exchange network to an exchange platform. For example, an exchange authorization response can be provided by a service provider of an exchange network in response to an exchange authorization request indicating one or more valid objects from an exchange request.
[0067] In some embodiments, an exchange authorization response indicates at least one of an exchange approval or an exchange denial. An exchange authorization response can be based at least in part on a comparison between an exchange value (e.g., modified based at least in part on valid objects, among others) and asset availability of a service provider tool. For example, in response to receiving an exchange authorization request, a member can be configured to compare an exchange value to asset availability of an identified service provider tool. In the event that asset availability exceeds the exchange value, a value-based exchange can be authorized (e.g., resulting in an exchange approval, among others), otherwise a value-based exchange can be denied (e.g., resulting in an exchange denial).
[0068] In some embodiments, the exchange authorization response indicates one or more contextual response attributes. For example, the one or more contextual response attributes can indicate one or more impact factors of the exchange authorization response. For example, the impact factors can include a bad actor risk and / or fraud check, an error, a full approval, a tool closure, a tool-based risk and / or fraud check, a value deficiency, a UUEK invalidity, an overage (e.g., an overage of a UUEK or a tool usage limit), a missing line item (e.g., for a value exchange that does not include a valid object), a tool not found, an account not found, a personal identification number (pin) required, a partial approval, a member not available, a transaction risk and / or fraud check, an unsupported operation, a user to contact a member (e.g., a user can need to contact a member (such as a service provider) to resolve an issue), a user risk and / or fraud check, and combinations thereof.
[0069] In some embodiments, the term "exchange response" refers to a data entity that defines a response to an exchange request. In some embodiments, the exchange response is provided from an exchange platform to a member that provided the exchange request. The exchange response can indicate an exchange approval and / or an exchange denial. Additionally or alternatively, the exchange response can indicate valid data objects, invalid data objects, and / or contextual response attributes. For example, the exchange response can indicate one or more valid objects and / or one or more invalid objects for the exchange request.
[0070] In some embodiments, the term "exchange record" refers to a data entity that provides contextual information for an exchange request. The contextual information can indicate one or more aspects of the exchange request, the exchange response, the exchange authorization request, and / or the exchange authorization request. For example, the exchange record can indicate one or more valid objects, invalid objects, an object status for each valid and / or invalid object, and / or any other information associated with a value-based exchange.
[0071] In some embodiments, the term“member platform” refers to a computing entity corresponding to a member. A member platform can include a partner computing platform on behalf of a partner, a service provider computing platform on behalf of a service provider, and / or both a partner computing platform on behalf of a partner and a service provider computing platform on behalf of a service provider. In some examples, a member platform can be both a partner platform and a service provider platform. For example, the same member platform can be configured to operate on behalf of a partner for one value exchange and operate on behalf of a service provider for another value exchange. In some examples, the same member platform can be configured to represent both a partner and a service provider in a single value exchange. It is noted that the term member platform can refer to a partner platform, a service provider platform, or both a partner platform and a service provider platform, and in some examples, a member platform can depend on the role of the member platform in a value exchange (e.g., and / or one or more APIs used by the member platform in a value exchange).
[0072] In some embodiments, a partner platform is a computing entity configured to perform one or more operations on behalf of a partner. For example, a partner platform can include one or more processing devices, storage devices, etc. that are physically and / or wirelessly coupled and configured to collectively (and / or individually) perform one or more computing tasks in requesting value in an exchange independent of a value system. In some examples, a partner platform can include, define, and / or otherwise utilize one or more APIs to facilitate communication (e.g., requests and responses, etc.) with an exchange platform. In some examples, a partner platform can be configured to host one or more user-facing applications (e.g., partner applications, etc.) for interacting with one or more users.
[0073] In some embodiments, a service provider platform is a computing entity configured to perform one or more operations on behalf of a service provider. For example, a service provider platform can include one or more processing devices, storage devices, etc. that are physically and / or wirelessly coupled and configured to collectively (and / or individually) perform one or more computing tasks in providing value in an exchange independent of a value system. In some examples, a service provider platform can include, define, and / or otherwise utilize one or more APIs to facilitate communication (e.g., requests and responses, etc.) with an exchange platform. In some examples, a service provider platform can be configured to facilitate one or more service provider tools. In some examples, a service provider platform can be configured to host one or more user-facing applications (e.g., service provider applications, etc.) for managing one or more service provider tools.
[0074] In some embodiments, the term “exchange interface” refers to a set of instructions for facilitating communications between an exchange platform and one or more member platforms and / or internal services. An exchange interface can include an API, a file-based interface, a message queue-based interface, and / or the like. For example, an exchange interface can include an API, such as one or more simple object access protocol (SOAP) APIs, one or more remote procedure call (RPC) APIs, one or more websocket APIs, one or more representational state transfer (REST) APIs, and / or the like. In some embodiments, an exchange interface can include one or more RPC APIs, such as one or more gRPC APIs.
[0075] An exchange platform can include, define, and / or otherwise utilize one or more different exchange interfaces to facilitate communications with one or more external platforms (e.g., one or more member platforms, (e.g., partner platforms, service provider platforms, and / or the like)). Each API can include a plurality of communication instructions, message definitions, and / or the like for exchange requests and / or responses between an exchange platform and an entity participating in a value exchange. For example, an exchange interface can include a partner API for facilitating communications with a partner platform and / or a service provider API for facilitating communications with a service provider platform.
[0076] In some embodiments, the term “partner interface” refers to an exchange interface for facilitating one or more communications between a partner platform and an exchange platform. A partner interface can define one or more communication instructions, message definitions, and / or the like for facilitating one or more request messages and / or response messages between a partner platform and an exchange platform. For example, a partner interface can include an API that defines (i) a request from a computing entity functioning as a partner platform to an exchange platform and / or (ii) a request from an exchange platform to a partner platform. For example, a partner interface can define one or more registration messages, session messages, transaction messages, and / or the like for facilitating a value exchange by a partner. In some embodiments, a partner interface defines one or more identifiers for securely identifying one or more portions of a value exchange.
[0077] In some embodiments, the term“service provider interface” refers to an exchange interface that facilitates one or more communications between a service provider platform and an exchange platform. The service provider interface can define one or more communication instructions, message definitions, and / or the like that facilitate one or more request messages and / or response messages between the service provider platform and the exchange platform. For example, the service provider interface can include an API that defines (i) requests from a computing entity that functions as a service provider platform to the exchange platform and / or (ii) requests from the exchange platform to the service provider platform. For example, the service provider interface can define one or more registration messages, session messages, transaction messages, and / or the like that facilitate a value exchange using a service provider tool. In some embodiments, the service provider interface defines one or more identifiers that securely identify one or more portions of a value exchange.
[0078] In some embodiments, the term“entity partition” refers to a unique identifier of a computing entity. The entity partition can include a number, an alpha-numeric, and / or the like that is unique to a particular computing entity. For example, the entity partition can include a member partition that represents a member platform, a service provider partition that represents a service provider platform, a partner partition that represents a partner platform, and / or the like.
[0079] In some embodiments, the term“service provider partition” refers to a unique identifier of a service provider and / or a service provider platform of a service provider. The service provider partition can include a sequence of numbers, a sequence of alpha-numeric, a sequence of characters or symbols that represent a service provider that is associated with (e.g., joined to, registered to, and / or the like) an exchange platform. For example, an exchange platform can include a plurality of service provider partitions that respectively identify service provider platforms that are affiliated with (e.g., joined to, registered to, and / or the like) the exchange platform. Each service provider partition can represent a service provider platform that has been configured with one or more exchange software development kits (SDKs) and / or the like that implement a service provider interface of the exchange platform.
[0080] In some embodiments, the term“partner partition” refers to a unique identifier of a partner and / or a partner platform of a partner. The partner partition can include a sequence of numbers, a sequence of alpha-numeric, a sequence of characters or symbols that represent a partner that is associated with an exchange platform. For example, an exchange platform can include a plurality of partner partitions that respectively identify partner platforms that are affiliated with (e.g., joined to, registered to, and / or the like) the exchange platform. Each partner partition can represent a partner platform that has been configured with one or more exchange SDKs and / or the like that implement a partner interface of the exchange platform.
[0081] In some embodiments, the term“user-facing application” refers to a computer program hosted by a computing entity to facilitate one or more user interactions. A user-facing application can include software (e.g., computer-readable instructions, etc.) designed to perform one or more computing tasks for the computing entity (e.g., a member platform). For example, a user-facing application can facilitate communications between a member and a user. For example, a user-facing application can be configured to present one or more user interfaces to interact with a user on behalf of a member. In some examples, a user-facing application can be configured to receive user input (e.g., via one or more user interfaces) to receive information from a user.
[0082] In some embodiments, a user-facing application is a partner application hosted by a partner platform (e.g., a member platform acting as a partner for a particular exchange, etc.) to facilitate functionality of the partner. A partner application can include software (e.g., computer-readable instructions, etc.) designed to perform one or more computing tasks for the partner. For example, a partner application can be configured to present one or more user interfaces for interacting with (e.g., browsing, purchasing, reviewing, etc.) one or more products offered by a retail-based partner, one or more information units offered by an information-based partner, etc. In some examples, a partner application can be configured to receive user input (e.g., via one or more user interfaces) to receive information from a user.
[0083] In some embodiments, a user-facing application is a service provider application hosted by a service provider platform (e.g., a member platform acting as a service provider for a particular exchange, etc.) to facilitate functionality of the service provider. A service provider application can include software (e.g., computer-readable instructions, etc.) designed to perform one or more computing tasks for the service provider. For example, a service provider application can be configured to present one or more user interfaces for interacting with (e.g., reviewing, managing, auditing, enrolling, etc.) one or more service provider tools offered by the service provider. For example, in a financial value system, a service provider application can enable access to a bank account, a brokerage account, a line of credit, etc. to manage funds, assets, etc. handled by the respective account. In some examples, a service provider application can be configured to receive user input (e.g., via one or more user interfaces) to receive information, authorization, etc. from a user.
[0084] In some embodiments, the term“tool data object” refers to a data entity that represents a service provider tool. A tool data object can include one or more tool identifiers and / or one or more tool attributes. In some examples, the one or more tool identifiers and / or one or more tool attributes can be based at least in part on the type of tool data object. For example, a service provider tool can be represented as a member tool data object in a member platform. Additionally or alternatively, the service provider tool can be independently represented by a system tool data object in an exchange platform. In some examples, the member tool data object and the system tool data object can include one or more of the same one or more tool identifiers and / or one or more tool attributes. For example, a member platform can register a plurality of service provider tools with an exchange platform. During the registration process, the member platform can provide one or more of the tool identifiers and / or tool attributes, and in some examples, the exchange platform can return another identifier.
[0085] In some embodiments, a member tool data object is an internal representation of a service provider tool within a member platform. A member tool data object can include one or more tool identifiers (e.g., a member tool identifier), a tool key from an exchange platform, and / or a user identifier. For example, the user identifier can include a member user identifier. Additionally or alternatively, a member tool data object can include one or more tool attributes such as a tool type (e.g., a credit-based tool, a debit-based tool, an information-based tool, etc.), a tool representation, and / or one or more contextual attributes. In some examples, the contextual attributes can depend on the value system. For example, in a financial value system, the one or more contextual attributes can indicate (i) a currency associated with the service provider tool, (ii) an asset availability (e.g., a balance, a coverage, etc.) of the service provider tool, (iii) one or more prior transactions using the service provider tool, etc.
[0086] In some embodiments, a system tool data object is an external representation of a service provider tool within an exchange platform. A system tool data object can include one or more tool identifiers such as a tool reference for a member platform, a system tool identifier, and / or a user identifier. For example, the user identifier can include a system user identifier. Additionally or alternatively, a system tool data object can include one or more tool attributes such as a tool type (e.g., a credit-based tool, a debit-based tool, an information-based tool, etc.), a tool representation, and / or one or more contextual attributes. In some examples, the contextual attributes can depend on the value system. For example, in a financial value system, the one or more contextual attributes can indicate a currency associated with the service provider tool.
[0087] In some embodiments, the term“tool identifier” refers to any representation of a service provider tool. A tool identifier can include a tool identifier, a tool reference, a tool key, and / or the like as described herein.
[0088] In some embodiments, the term“member tool identifier” refers to a unique identifier used to represent a service provider tool within a member platform. For example, a member tool identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a service provider tool to a service provider platform.
[0089] In some embodiments, the term“tool reference” refers to a unique identifier used to reference a member tool identifier. A tool reference can be generated by a member platform and / or provided by a member platform to an exchange platform to allow the exchange platform to reference a tool maintained at the member platform. In some examples, a tool reference is the same value as a member tool identifier. In some examples, a tool reference is a different value that maps to a member tool identifier.
[0090] In some embodiments, the term“system tool identifier” refers to a unique identifier used to represent a service provider tool within an exchange platform. For example, a system tool identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a service provider tool to an exchange platform. In some examples, a system tool identifier can include a UUID.
[0091] In some embodiments, the term“tool key” refers to a unique identifier used to reference a system tool identifier. A tool key can be generated and / or provided by an exchange platform during a process of registering a tool with the exchange platform. In some examples, a tool key can include an encapsulated system tool identifier. For example, a tool key can include a string of letters-numbers formatted according to a key format established by the exchange platform (and / or one or more APIs thereof). A key format can include any number of characters, such as fifty characters or more. In some examples, characters can be case sensitive. A first portion of characters (e.g., the first six characters) can be reserved as a partition used to identify an entity associated with the key. For a tool key, the partition can include a service provider partition. A second portion of characters can identify a system tool identifier. A key format described herein can include one or more different portions, each of which can be arranged in any order.
[0092] In some embodiments, the term "tool representation" refers to a unique identifier used to represent a service provider tool to a user. For example, a tool representation can include a sequence of numbers, a sequence of alpha-numeric characters, any / or any other sequence of characters or symbols that appear to represent a service provider tool. The format and / or value of a tool representation can be based at least in part on the type of service provider and / or service provider tool. For example, in a financial value system, a tool reference can include a portion of a persistent credential (e.g., the last four digits, etc.), such as an account number (e.g., a debit account, a credit account, etc.), a financial account name, etc. As another example, in an information value system, a tool reference can include a portion of a persistent credential (e.g., one or more numbers, alpha-numeric characters, etc.), such as a subscription account, etc. For example, a tool representation can include a derivative of a persistent credential that only allows an entity with prior knowledge of the persistent credential to use the tool representation to identify the persistent credential. As another example, a tool representation can include a tool alias that is specified by a user and subsequently identified by the user.
[0093] In some embodiments, the term "user data object" refers to a data entity that represents a user that interacts with a member platform and / or an exchange platform. For example, a user can include an entity (e.g., an individual, an organization, a group, etc.) that participates in a value exchange managed by an exchange platform. In some examples, a user can indirectly cooperate with an exchange platform by creating a user account with a registered service provider, registering (and / or allowing registration) of a service provider tool, etc. In some examples, an exchange platform can operate on behalf of a user without the user directly interfacing with the exchange platform. For example, an exchange platform can act as a hidden intermediary between a user-facing application and a user's service provider tool.
[0094] In some embodiments, a user data object includes one or more user identifiers and / or one or more user attributes. In some examples, the one or more user identifiers and / or one or more user attributes can be based at least in part on the type of user data object. For example, a user can be represented as a member user data object in a member platform. Additionally or alternatively, a user can be independently represented by a system user data object in an exchange platform. In some examples, a member user data object and a system user data object can include one or more of the same one or more user identifiers and / or user attributes. For example, a member platform can register a plurality of users with an exchange platform. During the registration process, the member platform can provide one or more of the user identifiers and / or user attributes, and in some examples, the exchange platform can return another identifier.
[0095] In some embodiments, a member user data object is an internal representation of a user within a member platform. A member user data object can include one or more user identifiers, such as a member user identifier, a user key from an exchange platform, and / or the like. Additionally or alternatively, a member user data object can include one or more user attributes. The one or more user attributes can indicate one or more contextual characteristics of a user. In some examples, a user attribute can indicate one or more identifiable characteristics of a user. For example, a user attribute can indicate a user’s first name, last name, email, physical address (e.g., one or more of a street, location, region, postal code, country, and / or the like), birth date (e.g., date of birth, age range, and / or the like), phone number, and / or the like. In some examples, a user attribute can include an encrypted representation, a hashed representation, and / or otherwise secured representation of an identifiable characteristic of a user. For example, a user attribute can include one or more hashed identifiers of a user, and / or the like.
[0096] In some embodiments, a system user data object is an external representation of a user of a member within an exchange platform. A system user data object can include one or more user identifiers, such as a user reference for a member platform, a system user identifier, and / or the like. Additionally or alternatively, a system user data object can include one or more user attributes, such as those described herein. For example, a member platform can register a user with an exchange platform. During the registration process, the member platform can provide a user reference for the user and / or one or more user attributes. In some examples, a user attribute can include a hashed identifier and / or an encrypted identifier of a user.
[0097] In some embodiments, the term “user identifier” refers to a unique identifier of a user involved in a value-based exchange. A user identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a user of an exchange platform and / or a member platform. In some examples, a user identifier can include a user reference, a user key, a system user identifier, a member user identifier, and / or the like.
[0098] In some embodiments, the term “system user identifier” refers to a unique identifier used to represent a user within an exchange platform. For example, a system user identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a user to an exchange platform. In some examples, a system user identifier can include a UUID specific to a certain user.
[0099] In some embodiments, the term“member user identifier” refers to a unique identifier used to represent a user within a member platform. For example, a member user identifier can include a numeric sequence, an alpha-numeric sequence, any / or any other sequence of characters or symbols used by a service provider platform to represent a user.
[0100] In some embodiments, the term“user reference” refers to a unique identifier used to reference a member user identifier. For example, a user reference can be generated by a member platform and / or provided by a member platform to an exchange platform to allow the exchange platform to reference a user associated with the member platform. In some examples, the user reference is the same value as the member user identifier. In some examples, the user reference is a different value that maps to the member user identifier.
[0101] In some embodiments, the term“user key” refers to a unique identifier used to reference a system user identifier. For example, a user key can be generated and / or provided by an exchange platform during a process to register a user with the exchange platform. In some examples, a user key can include an encapsulated system user identifier. For example, a user key can include an alpha-numeric string formatted according to a key format established by the exchange platform (and / or one or more APIs thereof). For example, the key format can include a first portion of characters (e.g., the first six characters) that can be reserved as a partition for identifying an entity (e.g., a member, etc.) associated with the key. For example, for a user key, the partition can include a service provider partition and / or a partner partition. A second portion of characters can identify the system user identifier.
[0102] In some embodiments, the term“exchange data object” refers to a data entity representing an authorized exchange of value between one or more members associated with an exchange platform. In some examples, an exchange data object can include one or more identifiers and / or one or more exchange attributes. For example, the one or more identifiers and / or one or more exchange attributes can be based at least in part on a type of exchange data object. For example, an exchange can be represented in a member platform as a member exchange data object. Additionally or alternatively, an exchange can be independently represented by a system exchange data object in the exchange platform. In some examples, a member exchange data object and a system exchange data object can include the same one or more identifiers and / or one or more of the exchange attributes. For example, using some techniques of the present disclosure, an exchange platform can issue one or more unique identifiers to a member platform that can be used to authorize an exchange of value.
[0103] In some embodiments, a system exchange data object is an internal representation of a value exchange using the exchange platform as an intermediary. In some examples, depending on the role of the system exchange data object in a value-based exchange, the system exchange data object can include one or more different identifiers and / or exchange attributes.
[0104] For example, a system exchange data object can include a service provider-specific exchange data object corresponding to a service provider platform. The service provider-specific exchange data object can include one or more identifiers, such as an exchange identifier, a system user identifier, a system tool identifier, a UUEK, etc. Additionally or alternatively, the service provider-specific exchange data object can include one or more exchange attributes, such as an expiration date, a currency (e.g., a currency used for a financial value system, etc.), etc.
[0105] Additionally or alternatively, a system exchange data object can include a partner-specific exchange data object corresponding to a partner platform. The partner-specific exchange data object can include one or more identifiers, such as an exchange identifier, a tool key, a UUEK, a member tool reference (e.g., a partner-specific tool reference, etc.), etc. Additionally or alternatively, the partner-specific exchange data object can include one or more exchange attributes, such as an expiration date, a currency (e.g., a currency used for a financial value system, etc.), a tool type, a previous UUEK identifier, etc. In some embodiments, a member exchange data object is an external representation of a value exchange using the exchange platform as an intermediary. The member exchange data object can include one or more identifiers, such as a member exchange identifier, a member tool identifier, a UUEK from the exchange platform, etc.
[0106] In some embodiments, the term“exchange identifier” refers to a unique identifier that uses the value exchange of the exchange platform. The exchange identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represent at least a user and / or a service provider tool. In some examples, the unique exchange identifier can include a universally unique identifier (UUID) that can be mapped (e.g., by a series of identifiers, etc.) to a user, a service provider tool, and / or a member registered with the exchange platform. In some examples, the exchange identifier can be randomly generated using one or more UUID generators. For example, the exchange identifier can include a random sixteen bytes of information generated according to one or more UUID formatting standards (e.g., UUID v4, etc.). Thus, while the exchange identifier can be used by the exchange platform and / or the member platform for one or more functions, the same exchange identifier will be useless to an outside party in the absence of a prior association between the exchange identifier and one or more other identifiers. In some examples, the exchange identifier can be externally represented by a UUEK.
[0107] In some embodiments, a“universally unique temporary key” or“UUEK” refers to an external representation of an exchange identifier that can be published (e.g., in place of a service provider exchange identifier and / or a partner exchange identifier) to an external entity (e.g., a user, a partner, and / or a service provider) to initiate a transaction using the exchange platform. To this end, the UUEK can be generated by the exchange platform and published to the external entity. Each UUEK can include a plurality of values (e.g., up to fifty and / or more case-sensitive characters) that represent one or more aspects of a transaction. For example, the plurality of values can indicate an exchange identifier, a partition (e.g., identifying a recipient of the UUEK, etc.), an identifier type, and / or one or more flags. For example, the UUEK can include a partner-specific UUEK and / or a service provider-specific UUEK. The partner-specific UUEK can be associated with a partner-specific exchange data object, and the service provider-specific UUEK can be associated with a service provider-specific exchange data object, as described herein.
[0108] For example, the UUEK can be generated according to a key format. The key format can include a plurality of characters including, for example, fifty or more case-sensitive characters. A first portion of the characters (e.g., the first six characters) can be reserved as a partition for identifying a recipient of the UUEK. For example, the partition can include a partner partition, a service provider partition, and / or any other member partition. For example, the UUEK can be published in response to a request from an authorized member (e.g., an affiliate partner and / or a service provider).
[0109] Additionally or alternatively, at least one character of the key format (e.g., the seventh character) can identify a format of the UUEK. At least one additional character (e.g., the eighth character) can identify a type of the UUEK. In some examples, a second portion of the character can identify a swap identifier (e.g., a set of twenty-two characters following the eighth character). A third portion of the character (e.g., a set of twenty characters following the first portion of the character) can be reserved. An example representation is given below:
[0110] ppppppF1GGGGGGGGGGGGGGGGGGGrrrrrr where p represents a partition character, F represents a format character, i represents an identifier type character, G represents a swap identifier, and r represents a reserved character. The key format allows for 9.8 x 1044 unique permutations, which is more than the number of atoms in the observable universe. This enables new UUEKs to be generated and distributed on demand without compromising the security of underlying data (e.g., an identifier of a user, an identifier of a tool, and / or any other potential sensitive information) to which the UUEK can map. The key format described herein can include one or more different portions, each of which can be arranged in any order.
[0111] In some embodiments, the term“session identifier” refers to a unique identifier used to identify a series of related message exchanges between a swap platform and an external platform.
[0112] In some embodiments, the term“match code” refers to a session unique identifier used to authorize a registration session between one or more entities. For example, a match code can include a sequence of numbers, alpha-numeric and / or similar characters, etc. that can be provided to multiple entities to ensure that each of the entities are included in the same communication sequence. For example, a match code can include an eight character sequence that can be generated by a swap platform, provided to a service provider platform, and then received from a partner platform to ensure that the swap platform, the service provider platform, and the partner platform are all interacting with the same end user (e.g., by comparing a received match code to a generated match code as described herein).
[0113] Embodiments in the present disclosure can be implemented in various ways, including as computer program products that include articles of manufacture. Such computer program products can include one or more software components, including, for example, software objects, methods, data structures, etc. Software components can be encoded in any of various programming languages. An illustrative programming language can be a low-level programming language, such as an assembly language associated with a particular hardware architecture and / or operating system platform. Software components containing assembly language instructions can require conversion by an assembler before execution by the hardware architecture and / or platform. Another example programming language can be a high-level programming language that is portable across multiple architectures. Software components containing high-level programming language instructions can require conversion by an interpreter or compiler before execution.
[0114] Other examples of programming languages include, but are not limited to, macro languages, shell or command languages, job control languages, scripting languages, database query or search languages, and / or report writing languages. In one or more example embodiments, a software component containing instructions in one of the foregoing examples of programming languages can be executed directly by an operating system or other software component without having to be converted to another form first. Software components can be stored as files or other data storage constructs. Software components of similar type or functionality can be stored together, for example, in a particular directory, folder, or library. Software components can be static (e.g., pre-established or fixed) or dynamic (e.g., created or modified at execution time).
[0115] A computer program product can include a non-transitory computer-readable storage medium storing applications, programs, program modules, scripts, source code, program code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, etc. (also referred to herein as executable instructions, instructions for execution, computer program products, program code, and / or similar terms used herein interchangeably). Such non-transitory computer-readable storage media include all computer-readable media, including volatile and non-volatile media.
[0116] In one embodiment, the non-volatile computer-readable storage medium can include a floppy disk, a flexible disk, a hard disk, a solid-state memory (SSS) (e.g., a solid state drive (SSD), a solid state card (SSC), a solid state module (SSM)), enterprise flash drive, a magnetic tape, or any other non-transitory magnetic medium, etc. The non-volatile computer-readable storage medium can also include a punch card, paper tape, optical mark sheet (or any other physical medium with patterns of holes or other optically recognizable marks), compact disc read only memory (CD-ROM), compact disc -rewritable (CD-RW), digital versatile disc (DVD), Blu-ray disc (BD), any other non-transitory optical medium, etc. Such a non-volatile computer-readable storage medium can also include read only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory (e.g., serial, NAND, NOR, etc.), multi-media storage card (MMC), secure digital (SD) memory card, SmartMedia card, CompactFlash (CF) card, Memory Stick, etc. In addition, the non-volatile computer-readable storage medium can also include conductive bridging random access memory (CBRAM), phase change random access memory (PRAM), ferroelectric random access memory (FeRAM), non-volatile random access memory (NVRAM), magnetoresistive random access memory (MRAM), resistive random access memory (RRAM), Silicon-Oxide-Nitride-Oxide-Silicon memory (SONOS), floating junction gate random access memory (FJG RAM), Millipede memory, racetrack memory, etc.
[0117] In one embodiment, a volatile computer-readable storage medium can include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), fast page mode dynamic random access memory (FPM DRAM), extended data output dynamic random access memory (EDO DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), double data rate type two synchronous dynamic random access memory (DDR2 SDRAM), double data rate type three synchronous dynamic random access memory (DDR3 SDRAM), Rambus dynamic random access memory (RDRAM), Twin Transistor RAM (TTRAM), Thyristor RAM (T-RAM), Zero-capacitor (Z-RAM), Rambus in-line memory module (RIMM), dual in-line memory module (DIMM), single in-line memory module (SIMM), video random access memory (VRAM), cache memory (including various levels), flash memory, register memory, and / or the like. It should be noted that when embodiments are described as using computer-readable storage medium, other types of computer-readable storage medium can be used in place of, or in addition to, the above-described computer-readable storage medium.
[0118] It should be noted that various embodiments of the present disclosure can also be implemented as methods, apparatus, systems, computing devices, computing entities, and / or the like. As such, embodiments of the present disclosure can take many forms of data structures, apparatus, systems, computing devices, computing entities, and / or the like executing instructions stored on computer-readable storage media to perform certain steps or operations. As such, embodiments of the present disclosure can also take the form of an entirely hardware embodiment, an entirely software embodiment, and / or an embodiment containing both computer program and hardware elements in combination.
[0119] Embodiments of this disclosure are described below with reference to block diagrams, flowcharts, message passing flows, and other representations of data, operations, and message passing schemes. It should be understood that each block of modules, arrows, etc., in the schematic diagrams, flowcharts, etc., can be implemented as a computer program product, a complete hardware embodiment, a combination of hardware and computer program products, and / or an apparatus, system, computing device, computing entity, etc., that executes instructions, operations, steps, and similar terms used interchangeably (e.g., executable instructions, instructions for execution, program code, etc.) on a computer-readable storage medium. For example, code retrieval, loading, and execution can be performed sequentially such that only one instruction is retrieved, loaded, and executed at a time. In some example embodiments, retrieval, loading, and / or execution can be performed in parallel such that multiple instructions are retrieved, loaded, and / or executed together. Therefore, such embodiments can produce machines that execute specific configurations of steps or operations specified in the representations of this disclosure. Accordingly, the representations of this disclosure support various combinations of embodiments for executing specified instructions, operations, or steps.
[0120] IV. Example System Architecture
[0121] Figure 1 A schematic diagram of a computing ecosystem 100 that can be used in conjunction with various embodiments of this disclosure is provided. For example... Figure 1 As shown, the architecture may include an exchange platform 102, one or more client devices 104, a member platform network 110, one or more networks 120, etc. The member platform network 110 may include a first member platform 112a, a second member platform 112b, a third member platform 112c, etc., attached to the exchange platform 102 (e.g., registered on the exchange platform). For example, as described herein, the member platform network 110 may include partner platforms and / or service provider platforms. In some examples, a partner platform may include a first member platform 112a, and a service provider platform may include a second member platform 112b, which is different from the first member platform 112a. In some examples, a partner platform and / or service provider platform may include a single member platform (e.g., a third member platform 112c). In some examples, the member platform network 110 may be configured for one or more different services.
[0122] Each component of the computing ecosystem 100 can electronically communicate with, for example, another component via the same or different wireless or wired networks 120 (including, for example, wired or wireless personal area networks (PANs), local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), etc.). For example, network 120 can include any network connection, encompassing any type of network and / or crossing any geographical boundaries (e.g., connections between countries involving one or more sovereign entities, etc.). Furthermore, although... Figure 1Certain systems are shown as separate, standalone entities, but various embodiments are not limited to this particular architecture.
[0123] Although not explicitly shown, the exchange platform 102 can be part of the client device 104 and / or the network of member platforms 110. Additionally or alternatively, the member platforms 112a-c can be part of the client device 104 and / or the exchange platform 102. In some embodiments, each of the exchange platform 102 and / or the member platforms 112a-c can comprise the same computing platform.
[0124] a. Example Computing Platform
[0125] Figure 2 is an example schematic diagram of a computing platform 200 according to one or more embodiments of the present disclosure. The computing platform 200 (e.g., the exchange platform 102, the member platforms 112a-112c, and / or similar platforms in Figure 1 may include one or more processing elements 202 (also referred to as processors, processing circuitry, and / or similar terms used herein interchangeably) or be in communication with one or more processing elements 202, which communicate with other elements within the computing platform 200, e.g., via a bus. It will be appreciated that the processing element 202 can be implemented in many different ways.
[0126] For example, the processing element 202 can be implemented as one or more complex programmable logic devices (CPLDs), microprocessors, multi-core processors, co-processing units, application specific instruction set processors (ASIPs), microcontrollers, and / or controllers. Moreover, the processing element 202 can be implemented as one or more other processing devices or circuits. The term circuitry can refer to a completely hardware implementation or a combination of hardware and computer program products. Thus, the processing element 202 can be implemented as an integrated circuit, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic array (PLA), a hardware accelerator, other circuitry, etc.
[0127] It will thus be appreciated that the processing element 202 can be configured for a specific use, or can be configured to execute instructions stored in volatile or non-volatile media or otherwise accessible to the processing element 202. Thus, whether configured by hardware or computer program products, or by a combination thereof, the processing element 202 can be capable of performing steps or operations according to embodiments of the present disclosure when configured accordingly.
[0128] In some embodiments, the computing platform 200 includes or is in communication with non-volatile memory 204 (also referred to as non-volatile storage, media, memory, memory circuitry, and / or similar terms used herein interchangeably). In some examples, the non-volatile memory 204 can include one or more non-volatile storage devices or storage media, including but not limited to hard disk, ROM, PROM, EPROM, EEPROM, flash memory, MMCs, SD memory cards, Memory Stick, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, Millipede memory, racetrack memory, and the like.
[0129] It will be appreciated that the non-volatile memory 204 is capable of storing data, databases, database instances, database management systems, files, applications, programs, program modules, scripts, source code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, and the like. The terms database, database instance, database management system, and / or similar terms used herein interchangeably can refer to a collection of records or data stored in a computer-readable storage medium using one or more database models (e.g., hierarchical database model, network model, relational model, entity-relationship model, object model, document model, semantic model, graph model, and the like).
[0130] In some embodiments, the computing platform 200 includes or is in communication with volatile memory 206 (also referred to as volatile storage, media, memory, memory circuitry, and / or similar terms used herein interchangeably). In some examples, the volatile memory 206 can also include one or more volatile storage devices or storage media, including but not limited to RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, cache, register memory, and the like.
[0131] It will be recognized that volatile memory 206 can be used to store databases, database instances, database management systems, data, applications, programs, program modules, scripts, source code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc., executed by, for example, processing element 202. Therefore, databases, database instances, database management systems, data, applications, programs, program modules, scripts, source code, object code, bytecode, compiled code, interpreted code, machine code, executable instructions, etc., can be used to control certain aspects of the computing platform 200 through steps / operations assisted by processing element 202 and the operating system.
[0132] As shown in the figure, in one embodiment, the computing platform 200 may further include one or more network interfaces 208 for communicating with various computing entities (e.g., Figure 1 Communication is carried out by means of one or more components, for example by transmitting data, content, information, and / or similar terms used interchangeably herein that can be sent, received, manipulated, processed, displayed, stored, etc. Such communication may be performed using wired data transmission protocols, such as Fiber Distributed Data Interface (FDDI), Digital Subscriber Line (DSL), Ethernet, Asynchronous Transfer Mode (ATM), Frame Relay, Cable Data Service Interface Specification (DOCSIS), or any other wired transmission protocol. Similarly, the computing platform 200 can be configured to communicate via a wireless external communication network using any of a variety of protocols, such as General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), CDMA2000 1X (1xRTT), Wideband Code Division Multiple Access (WCDMA), Global System for Mobile Communications (GSM), Enhanced Data Rate GSM Evolution (EDGE), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Evolved Data Optimized (EVDO), High Speed Packet Access (HSPA), High Speed Downlink Packet Access (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), Ultra Wideband (UWB), Infrared (IR) protocol, Near Field Communication (NFC) protocol, Wibree, Bluetooth protocol, Wireless Universal Serial Bus (USB) protocol, and / or any other wireless protocol.
[0133] Although not shown, the computing platform 200 can include or be in communication with one or more input elements, such as keyboard input, mouse input, touchscreen / display input, motion input, movement input, audio input, pointing device input, joystick input, keypad input, etc. The computing platform 200 can also include or be in communication with one or more output elements (not shown), such as audio output, video output, screen / display output, motion output, movement output, etc.
[0134] As shown, the computing platform 200 can be an example of one or more of the components in the Figure 1 ecosystem 100, such as the exchange platform 102 and / or the member platforms 112a-c.
[0135] b. Example Client Devices
[0136] Figure 3 is an example of a client device 104 according to one or more embodiments of the present disclosure. The client device 104 can be operated by various entities, and an example computing ecosystem can include one or more client devices 104. For example, the client device 104 can be associated with, owned by, operated by, etc. one or more end users. In various embodiments, an end user of the client device 104 can wish to participate in a value exchange between a partner and a service provider. As described herein, a user can participate in a value exchange between a partner and a service provider by interacting with the client device 104 using one or more functions provided by the exchange platform through user input.
[0137] For example, the client device 104 can be a personal computing device, a smartphone, a tablet, a laptop, a personal digital assistant, etc. In various embodiments, the computing platform 200 can be in communication with and manage a value exchange for one or more client devices 104. As Figure 3 As shown, the client device 104 can include an antenna 312, a transmitter 304 (e.g., radio transmitter), a receiver 306 (e.g., radio receiver), and a processing element 308 (e.g., CPLD, microprocessor, multi-core processor, coprocessing entity, ASIP, microcontroller, and / or controller) that provides signals to and receives signals from the transmitter 304 and receiver 306, respectively.
[0138] The signals provided to and received from the transmitter 304 and the receiver 306, respectively, can include signaling information / data in accordance with air interface standards of applicable wireless systems. In this regard, the client device 104 can be capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. More particularly, the client device 104 can operate in accordance with any of a number of wireless communication standards and protocols, such as those described above with regard to the computing platform 200. In a particular embodiment, the client device 104 can operate in accordance with multiple wireless communication standards and protocols, such as UMTS, CDMA2000, lxRTT, WCDMA, GSM, EDGE, TD-SCDMA, LTE, E-UTRAN, EVDO, HSPA, HSDPA, Wi-Fi, Wi-Fi Direct, WiMAX, UWB, IR, NFC, Bluetooth, USB, and so on. Similarly, the client device 104 can operate via the network interface 320 in accordance with a number of wired communication standards and protocols, such as those described above with regard to the computing platform 200.
[0139] Via these communication standards and protocols, the client device 104 can communicate with the computing platform 200 using concepts such as unstructured supplementary service data (USSD), short messaging service (SMS), multimedia messaging service (MMS), dual-tone multi-frequency signaling (DTMF), and / or subscriber identity module dialer (SIM dialer), among others. For example, the client device 104 can also be capable of downloading changes, additions, and updates to firmware, software (including executable instructions, applications, program modules), and operating systems, among others.
[0140] In some embodiments, the client device 104 includes location-determining aspects, devices, modules, functions, and / or similar words used herein interchangeably. For example, the client device 104 can include outdoor positioning aspects, such as a positioning module adapted to acquire, for example, latitude, longitude, altitude, geocode, route, direction, heading, speed, universal time (UTC), date, and / or various other information / data. In one embodiment, the location module can acquire data, sometimes referred to as ephemeris data, by identifying the number of satellites within view and the relative positions of those satellites (e.g., using the Global Positioning System (GPS)). These satellites can be various different satellite systems, including Low Earth Orbit (LEO) satellite systems, Department of Defense (DOD) satellite systems, the European Union Galileo positioning system, the Chinese BeiDou Navigation System, the Indian Regional Navigational Satellite System, and the like. These data can be collected using various coordinate systems, such as Decimal Degrees (DD); Degrees, Minutes, Seconds (DMS); Universal Transverse Mercator (UTM); Universal Polar Stereographic (UPS) coordinate systems, and the like. Alternatively, the location information / data can be determined by triangulating the location of the client device 104 in combination with various other systems, including cellular towers, Wi-Fi access points, and the like. Similarly, the client device 104 can include indoor positioning aspects, such as a positioning module adapted to acquire, for example, latitude, longitude, altitude, geocode, route, direction, heading, speed, time, date, and / or various other information / data. Some indoor systems can use various location or positioning technologies, including RFID tags, indoor beacons or transmitters, Wi-Fi access points, cellular towers, nearby computing devices (e.g., smartphones, laptops), and the like. For example, these technologies can include iBeacons, Gimbal proximity beacons, Bluetooth Low Energy (BLE) transmitters, NFC transmitters, and the like. These indoor positioning aspects can be used in various settings to determine the location of a person or thing, with errors within inches or centimeters.
[0141] In some embodiments, the client device 104 can include a user interface 316 (e.g., a display screen, speakers, haptic mechanisms, etc. coupled to the processing element 308) and / or a user input interface 318 (e.g., a touch screen, microphone, etc. coupled to the processing element 308). For example, the user interface 316 can be one or more application screens presented by one or more computing platforms described herein. The user input interface 318 can include any of a number of devices or interfaces allowing the client device 104 to receive data, such as a keyboard (hard- or soft- key), touch display, voice / speech or motion interface, or other input device. In examples including a keyboard, the keyboard can include (or cause display of) the conventional numeric (0-9) and related keys (#, *) and other keys for operating the client device 104, and can include a full set of alphanumeric keys or a set of keys that can be activated to provide a full set of alphanumeric keys. In addition to providing input, the user input interface can be used for, e.g., activating or deactivating certain functions (such as screen savers and / or sleep modes).
[0142] The client device 104 can also include volatile memory 322 and / or non-volatile memory 324, which can be embedded and / or can be removable. For example, the non-volatile memory 324 can be ROM, PROM, EPROM, EEPROM, flash memory, MMCs, SD memory cards, Memory Sticks, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, Millipede memory, racetrack memory, etc. The volatile memory 322 can be RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, cache, register memory, etc. The volatile and non-volatile storage devices or memories can store databases, database instances, database management systems, data, applications, programs, program modules, scripts, source code, object code, byte code, compiled code, interpreted code, machine code, and / or executable instructions, etc. to implement the functionality of the client device 104. As indicated, this can include partner applications, service provider applications, etc. that reside on the client device 104 and / or that can be accessed through a browser or other user interface for communicating with the computing platform 200.
[0143] In some embodiments, the client device 104 can include one or more components or functions identical or similar to components or functions of the computing platform 200 as described in greater detail above. It will be recognized that these architectures and descriptions are provided for example purposes only and are not limiting of the various embodiments.
[0144] In various embodiments, the client device 104 can be implemented as an artificial intelligence (AI) computing entity, such as an Amazon Echo, Amazon Echo Dot, Amazon Show, Google Home, etc. Accordingly, the client device 104 can be configured to provide and / or receive information / data to / from an end user through an input / output mechanism (e.g., display, camera, speaker, voice-activated input, etc.). In certain embodiments, the AI computing entity can include one or more predefined and executable program algorithms stored in an on-board memory storage module and / or accessible over a network. In various embodiments, the AI computing entity can be configured to retrieve and / or execute one or more predefined program algorithms upon occurrence of a predefined triggering event.
[0145] c. Example Network
[0146] In some embodiments, Figure 1 Any two or more of the illustrative components of the computing ecosystem 100 can be configured to communicate with one another via respective communicative couplings to one or more networks 120. The networks 120 can include, but are not limited to, any one or a combination of different types of suitable communication networks, such as wired networks, public networks (e.g., the Internet), private networks (e.g., a Frame Relay network), wireless networks, cellular networks, telephone networks (e.g., a public switched telephone network), or any other suitable private and / or public networks. Moreover, the networks 120 can have any suitable communication range associated therewith and can include, for example, global networks (e.g., the Internet), MANs, WANs, LANs, or PANs. Furthermore, the networks 120 can include any type of media suitable for carrying desired information, including, but not limited to, coaxial cables, twisted pair wires, optical fibers, hybrid fiber-coaxial (HFC) media, microwave terrestrial transceivers, radio frequency communication media, satellite communication media, or any combination thereof, as well as various network devices and computing platforms provided by network providers or other entities.
[0147] d. Example Value Exchange System
[0148] Figure 4is an example block diagram of an example of a network-based exchange system 400 in accordance with one or more embodiments of the present disclosure. The network-based exchange system 400 includes a new computing ecosystem and computing platform that provides an end-to-end value exchange solution to replace traditional exchange processing systems. As described herein, the network-based exchange system 400 can be agnostic to the value system and can be applied to any value-based exchange (including, for example, information-based exchanges, financial-based exchanges, reputation-based exchanges, healthcare-based exchanges, welfare-based exchanges, etc. In any value system, the network-based exchange system 400 can facilitate network-based exchanges between value-seeking entities (e.g., partners) and value-providing entities (e.g., service providers) utilizing a mediating entity and one or more defined communication interfaces, which can be associated with one or more member platforms of the network-based exchange system 400.
[0149] As described above, the network-based exchange system 400 can include an exchange platform 102, a partner platform 420, and / or a service provider platform 440, which can each be configured to communicate via one or more exchange interfaces. The partner platform 420 and / or the service provider platform 440 can include one or more member platforms 112a-c from the network of member platforms 110. For example, the partner platform 420 and the service provider platform 440 can include a single member platform (e.g., member platform 112c). Additionally or alternatively, the partner platform 420 and the service provider platform 440 can include one or more different member platforms (e.g., member platform 112a and member platform 112b). In some examples, a user can interact with one or more of the platforms via a client device 104.
[0150] In some embodiments, the exchange platform 102 is a computing entity configured to facilitate credential-less value exchanges for one or more members of a network. The exchange platform 102 can include one or more processing devices, storage devices, etc. that are physically and / or wirelessly coupled and configured to collectively (and / or individually) perform one or more computing tasks for facilitating exchanges agnostic to a value system. In some examples, the exchange platform 102 can include, define, and / or otherwise utilize one or more exchange interfaces to facilitate communications (e.g., requests, responses, etc.) between multiple members. As described herein, the exchange interfaces can be utilized to facilitate secure exchanges between one or more members in any value system.
[0151] In some embodiments, a member is an entity that partners with the exchange platform 102 to participate in a value exchange. For example, a member can include (i) a partner that receives value with the exchange platform 102, (ii) a service provider that provides value with the exchange platform 102, and / or (iii) both a partner and a service provider. As used herein, a member can be referred to as a partner when the member receives value through a value exchange, and / or a member can be referred to as a service provider when the member provides value through a value exchange. Accordingly, the same member can be a partner or a service provider depending on the member’s role in a value exchange. For example, a member can be a partner that receives value in a value exchange. The same member can be a service provider that provides value in another value exchange. In some examples, the same member can be both a partner and a service provider in the same value exchange, such that the member provides and then receives value with the exchange platform 102 in a single member value exchange.
[0152] In some embodiments, a member is a partner when the member utilizes a service provided by a service provider. A partner can include any value-seeking entity in any value system. For example, in a financial value system, a partner can include a merchant (e.g., a retailer, a brick-and-mortar business, etc.) that can utilize a service provider (e.g., a financial institution) to obtain funds for a financial transaction. Additionally or alternatively, in an information value system, a partner can include a news publisher (e.g., a newspaper, a media outlet, etc.) that can utilize a service provider (e.g., a news agency (e.g., an Associated Press, a news service, etc.)) to obtain information for an information transaction. In a healthcare value system, a partner can include a healthcare provider that can access a healthcare benefits administrator to obtain healthcare benefits for funding a medical procedure. It should be understood that the techniques of the present disclosure can be applied to any value system, and a partner can include a value-seeker of any respective value system.
[0153] In some embodiments, a member is a service provider when the member provides services to a partner. A service provider can include a source of value in any value system. For example, in a financial value system, a service provider can include a financial institution (e.g., a bank, a currency exchange platform, a credit union, etc.) that can provide access to funds for financial transactions between one or more entities. Additionally or alternatively, in an information value system, a service provider can include a news organization (e.g., a wire service, a news service, etc.) that can provide a source of information for publication by a news publisher. In a healthcare value system, a service provider can include a healthcare benefits administrator that can provide access to healthcare benefits for a healthcare provider. It should be understood that the techniques of the present disclosure can be applied to any value system, and a service provider can include any source of value for any corresponding value system.
[0154] In some embodiments, a service provider tool is a mechanism utilized by a service provider to provide value on behalf of a particular user. A service provider tool can depend on the value system and / or the service provider. In some examples, a service provider tool can include an account opened at the service provider. For example, in a financial value system, a service provider tool can include a bank account (e.g., checking, savings, etc.), a brokerage account, a line of credit, etc. In an information value system, a service provider tool can include a subscription account, etc. In a healthcare value system, a service provider tool can include a healthcare benefits account, etc.
[0155] In some embodiments, the services provided by a service provider are subject to one or more policies. For example, a service provider can be associated with one or more member policies for verifying the use of a service provider tool maintained by the service provider.
[0156] For example, a service provider and / or its service provider tool can be associated with an entity that governs the use of one or more services provided by the service provider. For example, a service provider can facilitate an electronic benefits transfer (EBT) system that provides economic assistance for authorized food and household items, such as the Supplemental Nutrition Assistance Program (“SNAP”), Temporary Assistance for Needy Families (“TANF”), the Women, Infants, and Children (“WIC”) Special Supplemental Nutrition Program, etc. As another example, a service provider can facilitate a healthcare program on behalf of a healthcare provider that limits benefits according to healthcare eligibility, procedure codes, procedure locations, etc.
[0157] Additionally or alternatively, a service provider can manage the use of its own services. For example, a service provider can maintain a service provider tool for users of the service provider. The service provider can restrict the service provider tool on behalf of the users, on behalf of one or more internal policies, and / or the like. For example, the service provider can include a financial institution that allows one or more users to restrict access to funds provided by the financial institution. In this way, a user can provide restricted access to the service provider tool by establishing one or more member policies for the service provider tool.
[0158] A service provider and a partner can communicate through one or more respective member platforms associated with the entity. For example, a service provider can be associated with a service provider platform 440 and a partner can be associated with a partner platform 420.
[0159] In some embodiments, a member platform is a computing entity corresponding to a member associated with the exchange platform 102. A member platform can include a partner platform 420 that operates on behalf of a partner, a service provider platform 440 that operates on behalf of a service provider, and / or both a partner platform 420 and a service provider platform 440. In some examples, a member platform can be both a partner platform 420 and a service provider platform 440. For example, the same member platform can be configured to operate on behalf of a partner for one value exchange and operate on behalf of a service provider for another value exchange. In some examples, the same member platform can be configured to represent both a partner and a service provider in a single value exchange. It is noted that the term member platform can refer to a partner platform 420, a service provider platform 440, or both a partner platform and a service provider platform, and in some examples, a member platform can depend on the role of the member platform in a value exchange (e.g., and / or one or more interfaces used by the member platform in a value exchange).
[0160] In some embodiments, a partner platform 420 is a computing entity configured to perform one or more operations on behalf of a partner. For example, a partner platform 420 can include one or more processing devices, storage devices, and / or the like that are physically and / or wirelessly coupled and configured to collectively (and / or individually) perform one or more computing tasks that request value in an exchange that is independent of a value system. In some examples, a partner platform 420 can include, define, and / or otherwise utilize one or more exchange interfaces to facilitate communication (e.g., requests, responses, and / or the like) with the exchange platform 102. In some examples, a partner platform 420 can be configured to host one or more user-facing applications (e.g., a partner application, and / or the like) for interacting with one or more users.
[0161] The partner platform 420 (e.g., in a financial value system) can host an online marketplace for the partner that allows users to interact with (e.g., search, browse, purchase, return, etc.) one or more products or services offered by the partner. In the case of purchasing a product, the partner platform 420 can cooperate with one or more service providers to obtain funds for the purchase. Traditionally, card numbers, account numbers, and / or other financial credentials that can expose users to malicious parties are used to facilitate obtaining funds from the service providers. To address the cybersecurity and data privacy issues of traditional financial systems (and / or other value-based systems), the partner platform 420 can register on the exchange platform 102 by configuring one or more software development kits (SDKs), APIs, etc. to communicate with the exchange platform 102. For example, the partner platform 420 can include, define, and / or otherwise utilize one or more partner interfaces 402 to facilitate communication (e.g., requests, responses, etc.) with the exchange platform 102.
[0162] In some embodiments, the service provider platform 440 is a computing entity configured to perform one or more operations on behalf of a service provider. For example, the service provider platform 440 can include one or more processing devices, storage devices, etc. that are physically and / or wirelessly coupled and configured to collectively (and / or individually) perform one or more computing tasks for providing value in exchanges that are independent of a value system. In some examples, the service provider platform 440 can include, implement, and / or otherwise utilize one or more interfaces to facilitate communication (e.g., requests and responses, etc.) with the exchange platform 102. In some examples, the service provider platform 440 can be configured to facilitate one or more service provider tools. In some examples, the service provider platform 440 can be configured to host one or more user-facing applications (e.g., service provider applications, etc.) for managing one or more service provider tools.
[0163] In some examples, the service provider platform 440 (e.g., in a financial value system) can maintain one or more financial assets (e.g., credit lines, bank accounts, etc.) that allow a user to fund an exchange for a purchase of a product from a partner. In the case of a purchase of a product, the service provider platform 440 can cooperate with the partner platform 420 to authorize the exchange and / or otherwise provide access to funds for the purchase. Traditionally, funds are accessed from a service provider by providing the service provider platform 440 with a card number, account number, and / or other financial credentials that can expose the user, service provider, or partner to a malicious party, particularly in cases where the provision is made over an insecure network (e.g., public network, etc.). To address the cybersecurity and data privacy concerns of traditional financial systems (and / or other value-based systems), the service provider platform 440 can register with the exchange platform 102 by configuring one or more software development kits (SDKs), APIs, etc. to communicate with the exchange platform 102. For example, the service provider platform 440 can include, implement, and / or otherwise utilize one or more service provider interfaces 404 to facilitate communication (e.g., requests, responses, etc.) with the exchange platform 102.
[0164] As described herein, the service provider interface 404 can enable the exchange platform 102 to identify and request use of a service provider tool to facilitate a transaction. For example, the service provider platform 440 can be configured to facilitate one or more service provider tools. In some examples, the service provider tools can include virtual tools (e.g., virtual accounts, credit lines, etc.) hosted by the service provider platform 440. For example, the service provider platform 440 can be configured to maintain, for a plurality of affiliated entities, a plurality of tool data objects indicative of a plurality of service provider tools.
[0165] In some embodiments, a tool data object is a data entity that represents a service provider tool. A tool data object can include one or more tool identifiers and / or one or more tool attributes. In some examples, the one or more tool identifiers and / or the one or more tool attributes can be based at least in part on a type of the tool data object. For example, a service provider tool can be represented as a member tool data object in a member platform (e.g., service provider platform 440). Additionally or alternatively, the service provider tool can be independently represented by a system tool data object in the exchange platform 102. In some examples, the member tool data object and the system tool data object can include one or more of the same one or more tool identifiers and / or one or more tool attributes. For example, a member platform can register a plurality of service provider tools on the exchange platform 102 (e.g., using service provider interface 440). During the registration process, the member platform (e.g., service provider platform 440) can provide one or more of the tool identifiers and / or the tool attributes, and in some examples, the exchange platform can return another identifier.
[0166] In some embodiments, a member tool data object is an internal representation of a service provider tool within a member platform (e.g., service provider platform 440). A member tool data object can include one or more tool identifiers (e.g., a member tool identifier), a tool key from the exchange platform 102, and / or a user identifier. For example, the user identifier can include a member user identifier as described herein. Additionally or alternatively, a member tool data object can include one or more tool attributes such as a tool type (e.g., a credit-based tool, a debit-based tool, an information-based tool, etc.), a tool representation, and / or one or more contextual attributes. In some examples, the contextual attributes can depend on the value system. For example, in a financial value system, the one or more contextual attributes can indicate (i) a currency associated with the service provider tool, (ii) an asset availability (e.g., a balance, a coverage, etc.) of the service provider tool, (iii) one or more prior transactions using the service provider tool, etc.
[0167] In some embodiments, the system tool data object is an external representation of a service provider tool within the exchange platform 102. The system tool data object can include one or more tool identifiers, such as a tool reference for a member platform, a system tool identifier, and / or a user identifier. For example, the user identifier can include a system user identifier as described herein. Additionally or alternatively, the system tool data object can include one or more tool attributes, such as a tool type (e.g., a credit-based tool, a debit-based tool, an information-based tool, etc.), a tool representation, and / or one or more contextual attributes. In some examples, the contextual attributes can depend on the value system. For example, in a financial value system, the one or more contextual attributes can indicate a currency associated with the service provider tool.
[0168] In some embodiments, the service provider tool is associated with one or more usage limitations. The usage limitations can be represented by a member policy 422. The member policy 422 can correspond to the service provider and / or be specific to the service provider tool. In some examples, the exchange platform 102 can include a verification service 408 configured to determine exchange requests based at least in part on a member policy corresponding to a service provider tool referenced by the exchange request. To this end, the exchange platform 102 (and / or its verification service 408) can access the member policy 422 of the service provider tool. For example, a member platform can enroll the member policy 422 with the exchange platform 102 (e.g., using the service provider interface 404). During enrollment, the member platform (e.g., the service provider platform 440) can provide one or more policy attributes, attribute updates, etc. to verify exchange requests referencing one or more service provider tools maintained by the member platform, etc. In some examples, the exchange platform can continuously update the member policy 422 as the one or more policy attributes are modified, added, and / or removed.
[0169] In some embodiments, the member policy 422 is managed by a governing entity configured to add, modify, and / or remove policy attributes from the member policy 422. For example, the governing entity can include a member platform, such as the service provider platform 440, that maintains a service provider tool subject to the member policy 422. In some examples, the member platform can continuously update the member policy 422 via the service provider interface 404 as the one or more policy attributes are modified, added, and / or removed. Additionally or alternatively, the governing entity can include a third-party regulatory entity, such as a regulatory agency, etc., that maintains one or more regulations, guidelines, etc. that can be implemented by the member policy 422. In some examples, the governing entity can continuously update the member policy 422 to implement different regulations, guidelines, etc. The governing entity can update the member policy 422 by communicating directly with the exchange platform and / or through an intermediary member platform.
[0170] In some embodiments, the member policy 422 is a data entity that defines one or more criteria for validating objects for value-based exchanges. The member policy 422 can correspond to a member and / or a service provider tool of the member. For example, the member policy 422 can define one or more criteria for validating objects based at least in part on one or more member-specific criteria. Additionally or alternatively, the member policy 422 can define one or more criteria for validating objects based at least in part on one or more tool-specific criteria. The member-specific criteria can apply to a plurality of service provider tools associated with the member, while the tool-specific criteria can apply to a subset of the plurality of service provider tools associated with the member.
[0171] The member policy 422 can indicate a plurality of authorized and / or unauthorized policy attributes for value-based exchanges. The authorized policy attributes can indicate one or more objects, object attributes, and / or value exchange attributes that are authorized for use with the service provider tool for value-based exchanges in accordance with the member policy 422. The unauthorized policy attributes can indicate one or more objects, object attributes, and / or value exchange attributes that are restricted from use with the service provider tool for value-based exchanges in accordance with the member policy 422. In some examples, the member policy 422 can define a plurality of authorized policy attributes, while the plurality of unauthorized policy attributes can include a plurality of undefined attributes. In some examples, the member policy 422 can define a plurality of unauthorized policy attributes, and the plurality of authorized policy attributes can include a plurality of undefined attributes.
[0172] In some examples, the policy attributes can include identifying object identifiers, one or more object attributes, and / or one or more value exchange attributes that identify objects and / or a quantity of one or more authorized / unauthorized objects.
[0173] For example, the member policy 422 can include a plurality of object identifiers. The plurality of object identifiers can indicate a plurality of objects that are authorized / unauthorized for use with the service provider tool for acquisition and / or return. In some examples, the object identifiers can be global object identifiers. For example, the global object identifiers can be SKU codes. Additionally or alternatively, the global object identifiers can be MPNs, GTINs, product or service names, ISBNs, UP Cs, EANs, EINs, and the like. In some examples, the object identifiers can include system object identifiers. For example, the system object identifiers can include identifiers corresponding to record data objects that represent objects within the exchange platform (e.g., table identifiers, etc.). In some embodiments, the system object identifiers and the global object identifiers are the same.
[0174] As another example, the policy attributes can indicate one or more object attributes that indicate authorized / unauthorized objects. The one or more object attributes can indicate one or more objects (e.g., with one or more different object identifiers) that are authorized and / or unauthorized for retrieval / or return using the service provider tool. For example, the object attributes can indicate categories of objects that are unauthorized for retrieval using the service provider tool (e.g., alcohol, tobacco, etc.) and / or categories of objects that are authorized for retrieval using the service provider tool (e.g., food items, etc.). Further, the object attributes can indicate categories of objects that are unauthorized for return using the service provider tool (e.g., perishable items, etc.) and / or categories of objects that are authorized for return using the service provider tool (e.g., non-perishable items, etc.).
[0175] As yet another example, the policy attributes can include value exchange attributes that correspond to a particular value-based exchange and / or objects included in the value-based exchange. For example, the value exchange attributes can include a threshold exchange value for a value-based exchange using the service provider tool. Additionally or alternatively, for objects included in the value-based exchange, the policy attributes can include a threshold object exchange value, a threshold object exchange quantity, etc. The threshold object exchange value can indicate an authorized value for retrieving a particular object using the service provider tool. The threshold object exchange quantity can indicate an authorized quantity (e.g., weight, unit quantity, etc.) of a particular object that can be retrieved (e.g., purchased, etc.) using the service provider tool.
[0176] As described herein, the exchange platform 102 (e.g., the verification service 408, etc.) can use the member policy 422 and one or more record data objects to verify and / or invalidate objects referenced by an exchange request.
[0177] In some embodiments, the record data objects 422 are data objects that represent objects. In some examples, the record data objects 422 can be an internal representation of objects of the exchange platform. For example, an object can include a different unit of a value-based exchange in which value is being transferred. The record data objects 422 of the object can include data objects that record one or more aspects (e.g., object identifiers, object attributes, etc.) of the object.
[0178] For example, the record data objects 422 can include object identifiers and / or one or more object attributes for particular objects associated with a value system. The objects can be based at least in part on the value system. For example, in a financial value system, the objects can be tangible or intangible items, products, and / or the like that can be purchased in a monetary unit in an exchange. In a healthcare value system, the objects can be healthcare procedures and / or the like that can be covered by a healthcare policy.
[0179] In some examples, the exchange platform 102 can maintain and / or access a data store including a plurality of record data objects 422. As described herein, the object data store can include a plurality of record data objects 422 that are derived, at least in part, from one or more members of the exchange network and / or one or more third parties.
[0180] In some embodiments, the object data store is generated, updated, and / or maintained using data from one or more external data sources. For example, the one or more external data sources can include one or more object directories. Each object directory can include a plurality of object identifiers and / or object attributes for each object identifier. For example, an object directory can include 10 data points, 20 data points, 40 data points, or more data points for each of a plurality of object identifiers. Each data point can indicate an object attribute of an object. The object attribute can be obtained by the external data source from a manufacturer, a supplier, and / or any other entity associated with a particular object. In some examples, the object data store can be aggregated according to each of the one or more different external data sources to aggregate, validate, and / or augment a plurality of record data objects 424 associated with a plurality of different entities.
[0181] In some embodiments, an object attribute is a data entity that describes a characteristic of an object. The object attribute can include an object-based attribute and / or an exchange-based attribute.
[0182] For example, an object-based attribute can include a spatial attribute, a count attribute, a value attribute, a source attribute, a composition attribute, a category attribute, and / or any other attribute that describes a characteristic of an object. For example, a spatial attribute can indicate one or more dimensions (e.g., height, width, weight, etc.) of an object, a value attribute can indicate a value (e.g., price, etc.) of an object, a composition attribute can indicate one or more ingredients, components, etc. of an object, a category attribute can indicate one or more categories (e.g., alcohol, tobacco, etc.) of an object, and / or the like. For example, one or more category attributes can indicate whether an object is associated with (i) one or more general store categories (e.g., produce, fruits, dairy, meat, grains, seeds, alcohol, tobacco, in-store consumables, hot foods, pharmacy, pet food, and non-food), (ii) one or more medical categories (e.g., dental, eye care, general health, etc.), (iii) one or more information categories (e.g., international source, domestic source, etc., and / or the like). In some examples, a composition attribute can indicate one or more components of an object, such as a volume percentage of alcohol in an object, one or more ingredients (e.g., meat, dairy, peanut products, tree nut products, soy products, etc.).
[0183] In some examples, the object-based attributes can be based at least in part on a value system. For example, in at least a financial-based value system, the object-based attributes can include one or more line item attributes, one or more line item adjustments, and / or the like. The line item attributes can include a sequence, a line item group, a product code, an item name, an item source (e.g., a vendor, a manufacturer, and / or the like), a description, a quantity, a quality (e.g., grams, kilograms, and / or the like), one or more spatial dimensions (e.g., length, width, height, volume, and / or the like), a unit amount, a unit tax, a line amount (e.g., an amount of the line item), a line tax, and / or the like. The line item adjustments can include an adjustment type (e.g., a manufacturer discount, a store discount, a return, a payment in cash, a payment in a gift card, a payment in another, and / or the like), an item, a product, or a service code, an item description, an item quantity, a unit item, an item quality (e.g., grams, kilograms, and / or the like), a unit amount, a unit tax, a line amount (e.g., an amount of the line item), a line tax, and / or the like.
[0184] In some examples, the one or more exchange-based attributes can indicate one or more aggregated exchange characteristics. For example, the exchange-based attributes can include a count attribute that describes a number of value-based exchanges involving a particular object. For example, the count attribute can indicate a number of units of a particular object acquired through a plurality of value-based exchanges. For example, as described herein, the exchange platform can increase the count attribute of an object each time the object is referenced in a value-based exchange, and / or decrease the count attribute of an object each time the object is authorized for return. In some examples, the exchange platform can increase the count attribute of an object each time the object is authorized for acquisition. In some examples, the record data object can include a plurality of count attributes that respectively identify a number of units of the object that have been acquired (e.g., a count of acquired), a number of units of the object that have been authorized for acquisition (e.g., a count of authorized), and / or a number of units of the object that have been requested for acquisition (e.g., a count of requested).
[0185] In some examples, the one or more exchange-based attributes can include exchange-specific characteristics. For example, the exchange-specific characteristics can include a source attribute that describes a location (e.g., a retailer, a physical store, a healthcare center, an information source, and / or the like) from which the object was acquired (e.g., purchased, and / or the like) through a value-based exchange. For example, the location can include a virtual location and / or a physical location. In some examples, the location can depend on the value system. For example, in a financial value system, the source attribute can identify a retailer, a particular physical store of the retailer, an online platform, and / or the like. In a healthcare value system, the source attribute can be a virtual and / or physical healthcare center, and / or the like. In an information value system, the source attribute can be an information source, and / or the like.
[0186] In some examples, the record data object and / or the count attribute can be source-specific. For example, a different record data object and / or count attribute can be maintained for each source from which objects can be obtained. Additionally or alternatively, the record data object and / or the count attribute can be source-agnostic.
[0187] In some examples, a member platform (e.g., the partner platform 420 and / or the service provider platform 440) can be associated with a user-facing application to facilitate one or more interactions with a user and / or other affiliated entities (e.g., via the client device 104).
[0188] In some embodiments, the user-facing application is a computer program hosted by a computing entity to facilitate one or more user interactions. The user-facing application can include software (e.g., computer-readable instructions, etc.) designed to perform one or more computing tasks for the computing entity (e.g., a member platform). For example, the user-facing application can facilitate communication between a member and a user. For example, the user-facing application can be configured to present one or more user interfaces 406 (e.g., via the client device 104) to interact with the user on behalf of the member. In some examples, the user-facing application can be configured to receive user input (e.g., via the one or more user interfaces 406) to receive information from the user.
[0189] In some embodiments, the user-facing application is a partner application 416 hosted by a partner platform (e.g., a member platform acting as a partner for a particular exchange, etc.) to facilitate functionality of the partner. The partner application can include software (e.g., computer-readable instructions, etc.) designed to perform one or more computing tasks for the partner. In some examples, the partner application 416 can be configured with one or more devices (e.g., point-of-sale terminals, etc.) from an independent partner institution (e.g., a brick-and-mortar bank, etc.). For example, the partner application 416 can be configured to present one or more user interfaces 406 for interacting with (e.g., browsing, purchasing, commenting, etc.) one or more products offered by a retail-based partner, one or more information units offered by an information-based partner, etc. In some examples, the partner application 416 can be configured to receive user input (e.g., via the one or more user interfaces 406) to receive information from the user.
[0190] In some embodiments, the service provider platform 440 can be configured to host one or more service provider applications 418 to manage one or more service provider tools. For example, a user-facing application can be a service provider application 418 hosted by the service provider platform 440 (e.g., used as a member platform of a particular exchange, etc.) to facilitate the functionality of the service provider. In some examples, the service provider application 418 can be configured with one or more devices from an independent service provider institution (e.g., a brick and mortar bank, etc.). The service provider application 418 can include software (e.g., computer-readable instructions, etc.) designed to perform one or more computational tasks for the service provider. For example, the service provider application 418 can be configured to present one or more user interfaces for interacting with (e.g., commenting on, managing, auditing, enrolling in, etc.) one or more service provider tools provided by the service provider. For example, in a financial value system, the service provider application 418 can enable access to bank accounts, brokerage accounts, lines of credit, etc. to manage funds, assets, etc. handled by the respective accounts. In some examples, the service provider application 418 can be configured to receive user input (e.g., through one or more user interfaces 406) to receive information, authorization, etc. from a user.
[0191] In some embodiments, the service provider application 418 is configured to maintain, update, and / or register member policies 422 for service provider tools. For example, the service provider platform 112 can enable users, organizations, and / or any other entity to configure member policies 422 for managing the use of service provider tools. For example, the member policies 422 can be configured by an organization (e.g., a state welfare program, etc.) and / or a user to guide the use of service provider tools. In some examples, an organization and / or a user can interact with the service provider application 418 to enroll a new member policy 422 and / or update one or more policy attributes of an existing member policy 422.
[0192] In some embodiments, the exchange platform 102 uses one or more exchange interfaces to facilitate communication between the partner platform 420 and the service provider platform 440.
[0193] In some embodiments, the exchange interface is a set of instructions for facilitating communication between the exchange platform 102 and one or more member platforms and / or internal services. The exchange interface can include an API, a file-based interface, a message queue-based interface, and / or the like. For example, the exchange interface can include an API, e.g., the API includes one or more Simple Object Access Protocol (SOAP) APIs, one or more Remote Procedure Call (RPC) APIs, one or more websocket APIs, one or more Representational State Transfer (REST) APIs, and / or the like. In some embodiments, the exchange interface can include one or more RPC APIs, e.g., one or more gRPC APIs.
[0194] The exchange platform 102 can include, define, and / or otherwise utilize one or more different exchange interfaces to facilitate communication with one or more external platforms, e.g., one or more member platforms (e.g., partner platforms 420, service provider platforms 440, and / or the like). Each interface can include a plurality of communication instructions, message definitions, and / or the like for exchange requests and / or responses between the exchange platform 102 and entities participating in a value exchange. For example, the exchange interface can include a partner interface 402 for facilitating communication with the partner platforms 420 and / or a service provider interface 404 for facilitating communication with the service provider platforms 440.
[0195] In some embodiments, the partner interface 402 is an exchange interface for facilitating one or more communications between the partner platforms 420 and the exchange platform 102. The partner interface 402 can define one or more communication instructions, message definitions, and / or the like for facilitating one or more request messages and / or response messages between the partner platforms 420 and the exchange platform 102. For example, the partner interface 402 can include an API that defines (i) requests from computing entities acting as the partner platforms 420 to the exchange platform 102 and / or (ii) requests from the exchange platform 102 to the partner platforms 420. For example, the partner interface 402 can define one or more registration messages, session messages, transaction messages, and / or the like for facilitating value exchanges by partners. In some embodiments, the partner interface 402 defines one or more identifiers for securely identifying one or more portions of a value exchange.
[0196] In some embodiments, the service provider interface 404 is an exchange interface for facilitating one or more communications between the service provider platform 440 and the exchange platform 102. The service provider interface 440 can define one or more communication instructions, message definitions, etc. for facilitating one or more request messages and / or response messages between the service provider platform 440 and the exchange platform 102. For example, the service provider interface 404 can include an API that defines (i) requests from computing entities functioning as the service provider platform 440 to the exchange platform 102 and / or (ii) requests from the exchange platform 102 to the service provider platform 440. For example, the service provider interface 404 can define one or more registration messages, session messages, transaction messages, etc. for facilitating a value exchange using the service provider tool. In some embodiments, the service provider interface 404 defines one or more identifiers for securely identifying one or more portions of a value exchange.
[0197] The exchange platform 102 can facilitate communications between a network of member platforms. The member network may, for example, include a plurality of entities that have joined the exchange platform 102, e.g., by registering on the exchange platform 102, configuring a respective interface for communicating with the exchange platform 102, etc. In some examples, the exchange platform 102 can execute one or more individual services to interact with each joined entity. For example, the individual services can include one or more partner services 410 and / or service provider services 412.
[0198] In some embodiments, the exchange platform 102 instantiates a separate partner-specific service, i.e., a partner service 410, for each of the member networks. Additionally or alternatively, e.g., in a multi-tenant environment, a partner service 410 can be instantiated for one or more partners from the member networks. The partner service 410 can be configured to perform one or more exchange operations to address exchange requests from the partner platform 420. In some embodiments, the exchange platform 102 instantiates a separate service provider-specific service, i.e., a service provider service 412, for each of the member networks. Additionally or alternatively, e.g., in a multi-tenant environment, a service provider service 412 can be instantiated for one or more service providers from the member networks. The service provider service 412 can be configured to perform one or more exchange operations to obtain and address exchange requests from the partner platform 420. The exchange operations can include any of the steps and / or operations described herein.
[0199] In some embodiments, partner services 410 and / or service provider services 412 interact with each other and / or with one or more other components of exchange platform 102 through one or more local communication mechanisms to perform exchange operations. For example, exchange platform 102 can include a verification service 408. Verification service 408 can be configured to perform one or more verification operations of the present disclosure to verify one or more objects of an exchange request. In this way, exchange platform 102 can pre-process objects of an exchange request on behalf of a member platform to enforce member policies 422 of the member platform.
[0200] By performing one or more exchange operations, partner services 410 and / or service provider services 412 can generate and utilize a plurality of non-traditional identifiers for referencing users, service provider tools, and / or one or more aspects of a value exchange. At least some of these identifiers can include a universally unique identifier (e.g., UUID) that can be used to provide a credential-less value exchange. Each identifier can be stored at least temporarily in platform database 414. Platform database 414 can include any type of storage device as described herein. In some examples, each service and / or one or more groups of services can be associated with a single portion of platform database 414.
[0201] As described herein, one or more identifiers can be stored in association with each other to form an identifier map that exchange platform 102 (and / or one or more services thereof) can utilize to reference any other aspect of a value exchange, a service provider tool, and / or a user without including a user credential in accordance with communications between partner platform 420, service provider platform 440, and / or any other member platform. Reference will now be made to Figure 5 Examples of non-traditional identifiers are further described.
[0202] e. Example Data Structures
[0203] Figure 5An example data diagram 500 for facilitating credential-less value exchange in accordance with one or more embodiments of the present disclosure. The data diagram 500 illustrates a plurality of different types of related identifiers. As illustrated, each identifier can be associated with at least one related identifier to form an identifier mapping within one or more platforms (e.g., the exchange platform 102 and / or the service provider platform 440). The identifier mapping enhances communication between the exchange platform 102 and the service provider platform 440 referencing the service provider tool 518 without exposing persistent credentials 514 (e.g., usernames, passwords, card numbers, etc.) associated with the service provider tool 518 that are easily defrauded, misused, and exploited by malicious parties. As illustrated, using some techniques of the present disclosure, the persistent credentials 514 can never need to be transmitted outside of the service provider platform 440. The data diagram 500 illustrates only some of a plurality of identifiers that can be generated, stored, and / or utilized by various embodiments of the present disclosure. It will be understood that the illustrated identifiers are not an exhaustive list and can also include other, non-illustrated identifiers. Each of the identifiers can be labeled as an identifier, reference, key, and / or other similar term. These terms, used interchangeably herein, are used to refer to a unit of information used to identify a data structure, entity, and / or any other component described herein.
[0204] As illustrated, some of the plurality of related identifiers in various embodiments of the present disclosure can include, for example, (i) one or more user references 502 that can be mapped to a member user identifier 522 of the service provider platform 440, (ii) one or more service provider partitions 504 corresponding to a joined service provider platform (e.g., the service provider platform 440) network, (iii) one or more partner partitions 506 corresponding to a joined partner platform network, (iv) one or more tool references 520 that can be mapped to a member tool identifier 508 of the service provider platform 440, (v) one or more keys 516 and / or system identifiers 512 associated with the user references 502 and / or the tool references 520, (vi) one or more exchange identifiers 510 that can be mapped to the system identifiers 512 and / or the keys 516, and / or (vii) one or more UUEKs 524 that can be mapped to the exchange identifiers 510 and / or at least one of the partner partitions 506 and / or the service provider partitions 504.
[0205] In some examples, the service provider platform 440 can store one or more identifiers that can be mapped to one or more identifiers of the exchange platform 102 and / or the service provider tools 518 to enable the service provider platform 440 to reference the service provider tools 518 based at least in part on the identifiers that, by themselves, cannot represent any aspect of the service provider tools 518, including the persistent credentials 514 of the service provider tools 518.
[0206] For example, the service provider platform 440 can store, maintain, and / or otherwise access one or more keys 516 (e.g., the one or more keys 516 are a copy, derivative, etc. of the one or more system identifiers 512) that are mapped to one or more system identifiers 512 of the exchange platform 102. For example, the keys 516 can include the system identifiers 512 as part of the keys 516. The keys 516 can be mapped to the member tool identifiers 508 and / or the member user identifiers 522 that can internally reference users and / or service provider tools 518 of the service provider platform. For example, the keys 516 can be provided during a registration process between the service provider platform 440 and / or the exchange platform 102.
[0207] As another example, the exchange platform 102 can store, maintain, and / or otherwise access one or more references (e.g., the tool references 520 and / or the user references 502) that are mapped to one or more member identifiers (e.g., the references are a copy, derivative, etc. of the one or more member identifiers), such as the member tool identifiers 508 and / or the member user identifiers 522 of the service provider platform 440. For example, the references can be provided during a registration process between the service provider platform 440 and / or the exchange platform 102.
[0208] In some embodiments, the exchange platform 102 uses one or more entity partitions to reference each member platform of the network of member platforms. In some embodiments, an entity partition is a unique identifier of a computing entity. The entity partition can include a number, alpha-numeric, etc. that is unique to represent a particular computing entity. For example, the entity partition can include a member partition that represents a member platform, a service provider partition 504 that represents the service provider platform 440, a partner partition 506 that represents the partner platform 420, etc.
[0209] In some embodiments, the service provider partition 504 is a unique identifier of a service provider and / or a service provider platform 440 of the service provider. The service provider partition 504 can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represent a service provider that is associated with (e.g., joined to, registered to, etc.) the exchange platform 102. For example, the exchange platform 102 can include a plurality of service provider partitions that each identify a service provider platform 440 that is affiliated with (e.g., joined to, registered to, etc.) the exchange platform 102. Each service provider partition 504 can represent a service provider platform 440 that has configured one or more exchange platform software development kits (SDKs) or the like for implementing a service provider interface of the exchange platform.
[0210] In some embodiments, the partner partition 506 is a unique identifier of a partner and / or a partner platform of the partner. The partner partition 506 can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represent a partner that is associated with the exchange platform 102. For example, the exchange platform 102 can include a plurality of partner partitions that each identify a partner platform that is affiliated with (e.g., joined to, registered to, etc.) the exchange platform 102. Each partner partition 506 can represent a partner platform that has configured one or more exchange SDKs or the like for implementing a partner interface of the exchange platform 102.
[0211] In some embodiments, when a member platform joins the exchange platform 102, an entity partition is generated to identify the member. In some examples, after joining the exchange platform, the member platform can utilize one or more exchange interfaces to register one or more service provider tools with the exchange platform 102. By exchanging one or more tool identifiers with the exchange platform 102, the service provider tools 518 can be registered with the exchange platform 102.
[0212] In some embodiments, the tool identifier includes any representation of the service provider tool 518 that identifies the service provider tool without exposing a persistent credential 514 of the service provider tool 518. The tool identifier can include a member tool identifier 508, a system tool identifier, a tool reference 520, a tool key, or the like as described herein.
[0213] In some embodiments, the member tool identifier 508 is a unique identifier used to represent a service provider tool 518 within a member platform (e.g., the service provider platform 440). For example, the member tool identifier 508 can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a service provider tool 518 to the service provider platform 440. In some examples, the member tool identifier 508 can include a table identifier of the member tool data object.
[0214] In some embodiments, the tool reference 520 is a unique identifier used to reference the member tool identifier 508. For example, the tool reference 520 can be generated by the member platform and / or provided to the exchange platform 102 to allow the exchange platform 102 to reference the service provider tool 518 maintained at the member platform. In some examples, the tool reference 520 is the same value as the member tool identifier 508. In some examples, the tool reference 520 is a different value that maps to the member tool identifier 508.
[0215] In some embodiments, the system tool identifier is a unique identifier used to represent a service provider tool 518 within the exchange platform 102. For example, the system tool identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a service provider tool 518 to the exchange platform 102 without exposing the persistent credential 514 of the service provider tool 518. In some examples, the system tool identifier can include a UUID. In some examples, the system tool identifier can include at least one of the system identifiers 512.
[0216] In some embodiments, the tool key is a unique identifier used to reference the system tool identifier. For example, the tool key can be generated and / or provided by the exchange platform 102 during a process of registering a service provider tool 518 with the exchange platform 102. In some examples, the tool key can include an encapsulated system tool identifier. For example, the tool key can include a string of letters-numbers formatted according to a key format established by the exchange platform 102 (and / or one or more APIs thereof). The key format can include any number of characters, such as fifty characters or more. In some examples, the characters can be case-sensitive. A first portion of the characters (e.g., the first six characters) can be reserved as a partition for identifying an entity associated with the key. For example, for a tool key, the partition can include the service provider partition 504. A second portion of the characters can identify the system tool identifier. In some examples, the tool key can include at least one of the keys 516. The key format described herein can include one or more different portions, each of which can be arranged in any order.
[0217] In some embodiments, after joining the exchange platform 102, a member platform can utilize one or more exchange interfaces to register one or more users with the exchange platform 102. A user can be registered with the exchange platform 102 by exchanging one or more user identifiers with the exchange platform 102. For example, a user identifier can be used to generate, maintain, and / or update one or more user data objects that reflect users of the member platform and / or the exchange platform 102.
[0218] In some embodiments, a user data object is a data entity that represents a user that interacts with a member platform and / or the exchange platform 102. A user can include, for example, an entity (e.g., an individual, an organization, a group, etc.) that participates in a value exchange managed by the exchange platform 102. In some examples, a user can indirectly work with the exchange platform 102 by creating a user account with a registered service provider, registering (and / or allowing registration) of a service provider tool 518, etc. In some examples, the exchange platform 102 can operate on behalf of a user without the user directly interfacing with the exchange platform 102. For example, the exchange platform 102 can act as a hidden intermediary between a user-facing application and a service provider tool 518 of the user.
[0219] In some embodiments, a user data object includes one or more user identifiers and / or one or more user attributes. In some examples, the one or more user identifiers and / or the one or more user attributes can be based at least in part on a type of the user data object. For example, a user can be represented as a member user data object in a member platform. Additionally or alternatively, a user can be independently represented by a system user data object in the exchange platform. In some examples, a member user data object and a system user data object can include one or more of the same one or more user identifiers and / or user attributes. For example, a member platform can register multiple users with the exchange platform 102. During the registration process, the member platform can provide one or more of the user identifiers and / or user attributes, and in some examples, the exchange platform 102 can return another identifier.
[0220] In some embodiments, a member user data object is an internal representation of a user within a member platform (e.g., service provider platform 440). A member user data object can include one or more user identifiers 522, such as a member user identifier, a user key from exchange platform 102, and / or the like. Additionally or alternatively, a member user data object can include one or more user attributes. The one or more user attributes can indicate one or more contextual characteristics of a user. In some examples, a user attribute can indicate one or more identifiable characteristics of a user. For example, a user attribute can indicate a user’s first name, last name, email, physical address (e.g., one or more of street, location, region, postal code, country, and / or the like), birth date (e.g., date of birth, age range, and / or the like), phone number, and / or the like. In some examples, a user attribute can include an encrypted representation, a hashed representation, and / or otherwise secured representation of an identifiable characteristic of a user. For example, a user attribute can include one or more hashed identifiers of a user and / or the like.
[0221] In some embodiments, a system user data object is an external representation of a user of a member within exchange platform 102. A system user data object can include one or more user identifiers, such as a user reference 502 for a member platform, a system user identifier, and / or the like. Additionally or alternatively, a system user data object can include one or more user attributes, such as the user attributes described above. For example, a member platform can register a user with exchange platform 102. During the registration process, the member platform can provide a user reference 502 for the user and / or one or more user attributes. In some examples, a user attribute can include a hashed identifier and / or an encrypted identifier of a user.
[0222] In some embodiments, a user identifier includes a unique identifier of a user involved in a value-based exchange. A user identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other sequence of characters or symbols that represents a user of exchange platform 102 and / or a member platform. In some examples, a user identifier can include a user reference 502, a user key, a system user identifier, a member user identifier, and / or the like.
[0223] In some embodiments, a system user identifier is a unique identifier for representing a user within exchange platform 102. For example, a system user identifier can include a sequence of numbers, a sequence of letters-numbers, any / or any other character or symbol that represents a user to exchange platform 102. In some examples, a system user identifier can include a UUID that is specific to a certain user. In some examples, a system user identifier can include at least one of system identifiers 512.
[0224] In some embodiments, the member user identifier 522 is a unique identifier used to represent a user within a member platform. For example, the member user identifier may include a sequence of numbers, an alphanumeric sequence, or any / or any other sequence of characters or symbols that represent a user to the service provider platform 440.
[0225] In some embodiments, user reference 520 may be a unique identifier used to reference member user identifier 508. For example, user reference 502 may be generated by the member platform and / or provided to exchange platform 102 to allow exchange platform 102 to reference users associated with the member platform. In some examples, user reference 502 is the same value as member user identifier 522. In some examples, user reference 502 is a different value mapped to member user identifier 522.
[0226] In some embodiments, a user key is a unique identifier used to reference a system user identifier. For example, a user key may be generated and / or provided by exchange platform 102 during the registration of a user with exchange platform 102. In some examples, a user key may include an encapsulated system user identifier. For example, a user key may include an alphanumeric string formatted according to a key format established by the exchange platform (and / or one or more of its APIs). For example, the key format may include a first portion of the characters (e.g., the first six characters), which may be reserved as a partition for identifying the entity (e.g., member, etc.) associated with the key. For example, for a user key, partitions may include a service provider partition 504 and / or a partner partition. A second portion of the characters may identify the system user identifier.
[0227] like Figure 5 As shown, keys 516 (such as user keys and tool keys as described herein) can be shared across exchange platform 102 and service provider platform 440. Furthermore, in some examples, references (such as tool reference 520 and user reference 502) can be shared across entities. These identifiers, along with the mapping scheme described herein, allow exchange platform 102 to reference service provider tool 518 without knowing its persistent credentials 514 (e.g., card number, etc.). As described herein, one or more of keys 516 and / or references can be provided to service provider platform 440 individually or in any combination. In some examples, each of keys 516 and references can be provided to service provider platform 440 through a redundant process, which allows service provider platform to verify that communication is provided by exchange platform 102 (e.g., an entity authorized to access a specific set of keys and references, etc.).
[0228] In some embodiments, the persistent credential 514 of the service provider tool 518 includes sensitive user and / or tool credentials (such as card numbers, account numbers, subscription numbers, etc.) that may expose users, members, and / or intermediary entities to risk. When a user applies for, is authorized, and / or otherwise enables the activation of a new service provider tool 518, the service provider platform 440 may generate, access, and / or otherwise provide the persistent credential 514 to the user. Traditionally, the user then uses the persistent credential 514 to initiate value exchanges using the service provider tool. By doing so, the user is forced to expose sensitive credentials directly bound to the service provider tool 518 each time it is used. The key 516, reference, and identifier mapping scheme disclosed herein overcomes these technical drawbacks.
[0229] In some examples, each identifier can be interpreted by the computing platform (e.g., exchange platform 102 and / or service provider platform 440) but not by the user. To enable the user to select the service provider tool 518 while maintaining the enhanced security features of this disclosure, in some examples, further enhancements can be represented by the tool. Figure 5 The identifier.
[0230] In some embodiments, the tool represents ( Figure 5 (Not shown) is a unique identifier used to represent the service provider tool 518 to a user without exposing the persistent credential 514 of the service provider tool 518. For example, the tool representation may include a sequence of numbers, an alphanumeric sequence, or any / or any other sequence of characters or symbols that appear to represent the service provider tool 518 only to entities with prior knowledge of it. The format and / or value of the tool representation may be at least partially based on the type of service provider and / or service provider tool 518. For example, in a financial value system, the tool representation may include a portion of the persistent credential 514 (e.g., the last four digits, etc.), such as a card number (e.g., debit card, credit card, etc.), a financial account number, etc. As another example, in an information value system, the tool representation may include a portion of the persistent credential 514 (e.g., one or more numbers, alphanumeric characters, etc.), such as a subscription account, etc. For example, the tool representation may include derivatives of the persistent credential 514 that only allow entities with prior knowledge of the persistent credential 514 to use the tool representation to identify the persistent credential 514. As another example, a tool representation may include a tool alias, which is specified by the user and subsequently identified by the user.
[0231] In some embodiments, a tool representation of the exchange platform 102 can be provided (e.g., during a registration process) in place of the persistent credential 514. In this way, the exchange platform 102 can use the tool representation to represent the service provider tool 518 without knowing the persistent credential 514 from which the tool representation can be derived. For example, unlike traditional web-based exchange platforms, the exchange platform 102 can not need a persistent credential 514 corresponding to the service provider tool 518 to implement various computing tasks of the present disclosure. This in turn allows the exchange platform 102 to operate more flexibly, while storing previously unrecorded contextual data, reducing the cost of running computations, and improving security measures to protect against penetration attacks by malicious computing entities.
[0232] In some embodiments, the identifier mapping scheme is supplemented by unique temporary keys issued to member platforms to facilitate secure, real-time value exchanges. For example, by implementing exchange identifiers 510 to represent aspects of value-based exchanges, the exchange platform 102 can facilitate additional layers of network and data security. Some examples of exchange identifiers 510 can include service provider-specific exchange identifiers and / or partner-specific exchange identifiers. A service provider-specific exchange identifier can include a temporary, unique exchange identifier that temporarily represents the service provider tool 518 and the service provider platform 440. For example, the service provider-specific exchange identifier can be mapped to a system identifier 512 for the service provider tool 518. A partner-specific exchange identifier can include a temporary, unique exchange identifier that temporarily represents the service provider tool 518 and a partner platform. For example, the partner-specific exchange identifier can be mapped to a key 516 for the service provider tool 518, which can be used to identify the service provider platform 440. In certain examples, such mappings can be defined by exchange data objects.
[0233] In some embodiments, an exchange data object is a data entity that represents an authorized exchange of value between one or more members associated with the exchange platform 102. In some examples, an exchange data object can include one or more identifiers and / or one or more exchange attributes. For example, the one or more identifiers and / or one or more exchange attributes can be based at least in part on the type of exchange data object. For example, an exchange can be represented in a member platform as a member exchange data object. Additionally or alternatively, an exchange can be independently represented by a system exchange data object in the exchange platform 102. In some examples, a member exchange data object and a system exchange data object can include one or more of the same one or more identifiers and / or exchange attributes. For example, using some techniques of the present disclosure, the exchange platform 102 can issue one or more unique identifiers to a member platform that can be used to authorize an exchange of value.
[0234] In some embodiments, a system exchange data object is an internal representation of an exchange of value that uses the exchange platform 102 as an intermediary. In some examples, a system exchange data object can include one or more different identifiers and / or exchange attributes depending on the role of the system exchange data object in a value-based exchange
[0235] For example, a system exchange data object can include a service provider specific exchange data object corresponding to the service provider platform 440. The service provider specific exchange data object can include one or more identifiers, such as the exchange identifier 510, a system identifier 512 (e.g., a system user identifier and / or a system tool identifier), a UUEK 514, and / or the like. Additionally or alternatively, the service provider specific exchange data object can include one or more exchange attributes, such as an expiration date, a currency (e.g., a currency used for a financial value system, and / or the like), and / or the like.
[0236] Additionally or alternatively, a system exchange data object can include a partner specific exchange data object corresponding to the partner platform. The partner specific exchange data object can include one or more identifiers, such as the exchange identifier 510, one or more keys 516 (e.g., a tool key), a UUEK 524, a member tool reference (e.g., a partner specific tool reference, and / or the like), and / or the like. Additionally or alternatively, the partner specific exchange data object can include one or more exchange attributes, such as an expiration date, a currency (e.g., a currency used for a financial value system, and / or the like), a tool type, and / or the like.
[0237] In some embodiments, the member exchange data object is an external representation of a value exchange using the exchange platform 102 as an intermediary. The member exchange data object can include one or more identifiers, such as a member exchange identifier, a member tool identifier 508, a UUEK 524 from the exchange platform 102, and the like.
[0238] In some embodiments, the exchange identifier 510 is a unique identifier of a value exchange using the exchange platform 102. The exchange identifier 510 can include a sequence of numbers, a sequence of alpha-numeric, any / or any other sequence of characters or symbols that at least represent a user and / or a service provider tool 518. In some examples, the exchange identifier 510 can include a universally unique identifier (UUID) that can map (e.g., through a series of identifiers, and the like) to a user, a service provider tool 518, and / or a member registered with the exchange platform 102. In some examples, the exchange identifier 510 can be generated using one or more UUID generators. For example, the exchange identifier 510 can include sixteen bytes of information generated according to one or more UUID formatting standards (e.g., UUID v4, and the like). Thus, while the exchange identifier 510 can be used by the exchange platform 102 and / or a member platform for one or more functions, the same exchange identifier 510 will be useless to an outside party in the absence of a priori associations between the exchange identifier 510 and one or more other identifiers. In addition to the a priori identifier associations, the exchange identifier 510 can be associated with the exchange platform 102. Thus, even if an adversary identifies the exchange identifier 510, the adversary would still need to impersonate the exchange platform 102 to use the exchange identifier 510. Furthermore, the adversary would need to update a settlement account to one owned by the adversary, among many other tasks, before the exchange identifier 510 can be used to the adversary’s disadvantage. Each of these tasks adds to the amount of work required to overcome the enhanced layer of security added by the exchange identifier 510. These tasks can become very costly when paired with the ephemeral nature of the exchange identifier 510.
[0239] In some examples, the exchange identifier 510 can be externally represented by the UUEK 524. For example, to facilitate a credential-less exchange, the exchange platform 102 can issue one or more UUEKs 524 to one or more member platforms. As described herein, by identifying aspects of a value exchange via previously mapped data entities, the UUEK 524 can eliminate the reliance on traditional, persistent credentials 514.
[0240] In some embodiments, the UUEK 524 is an external representation of the exchange identifier 510 that can be issued (e.g., in place of the exchange identifier 510) to external entities (e.g., users, partner platforms, and / or service provider platforms, etc.) to initiate a value-based exchange using the exchange platform 102. To this end, the UUEK 524 can be generated by the exchange platform 102 and issued to the external entities. Each UUEK 524 can include a plurality of values (e.g., up to fifty and / or more characters, which can be case sensitive or case insensitive) that represent one or more aspects of the value-based exchange. For example, the plurality of values can indicate the exchange identifier 510, a partition (e.g., identifying a recipient of the UUEK 524, etc.), an identifier type, and / or one or more flags. For example, the UUEK 524 can include a partner-specific UUEK and / or a service provider-specific UUEK. The partner-specific UUEK can be associated with a partner-specific exchange data object and can include the partner partition 506, while the service provider-specific UUEK can be associated with a service provider-specific exchange data object and can include the service provider partition 504, as described herein.
[0241] For example, the UUEK 524 can be generated according to a key format. The key format can include a plurality of characters, including, for example, fifty or more characters, which can be case sensitive or can be case insensitive. A first portion of the characters (e.g., the first six characters) can be reserved as a partition for identifying a recipient of the UUEK 524. For example, the partition can include the partner partition 506, the service provider partition 504, and / or any other member partition. For example, the UUEK 524 can be issued in response to a request from an authorized member (e.g., an affiliate partner and / or a service provider).
[0242] Additionally or alternatively, at least one character of the key format (e.g., the seventh character) can identify a format of the UUEK 524. At least one additional character (e.g., the eighth character) can identify a type of the UUEK 524. In some examples, a second portion of the characters can identify the exchange identifier 510 (e.g., a set of twenty-two characters following the eighth character). A third portion of the characters (e.g., a set of twenty characters following the first portion of the characters) can be reserved. An example representation is given below:
[0243] ppppppF1Grrrrrrrrr where p denotes a partition character, F denotes a format character, i denotes an identifier type character, G denotes a switch identifier 510, and r denotes a reserved character. The key format allows for 9.8 x 10 to the 84th power unique permutations, which is more than the number of atoms in the observable universe. This enables the generation and distribution of new UUEKs 524 on demand without compromising the security of underlying data (e.g., a user's identifier, tools, and / or any other potentially sensitive information) that the UUEK 524 can map to.
[0244] As described herein, the unique sequence of identifiers and mapping scheme between the identifiers can facilitate a credential-less value exchange system for registered and / or unregistered entities. In some examples, one or more of the identifiers can be generated through a registration or enrollment process configured to establish cross-entity relationships between users, partners, and service provider entities. Figure 5 The identifiers in the Figure 6 and Figure 7 described verification operations.
[0245] V. Example System Operations
[0246] Figure 6 A process flow for facilitating credential-less value exchange in accordance with one or more embodiments of the present disclosure is provided. The process flow describes a network-based process 600 for securely determining value-based exchanges at a granular level, object level, utilizing some of the communication techniques of the present disclosure. As described herein, the process 600 can be utilized to overcome various limitations of conventional exchange systems that expose sensitive persistent credentials to multiple third parties, such as a lack of flexibility, security, etc. The process 600 can be implemented by one or more of the computing devices, entities, and / or systems described herein. For example, through the various steps / operations of the process 600, an exchange platform can overcome various limitations of conventional exchange mechanisms by eliminating reliance on static, sensitive credentials, thereby providing greater flexibility and control over value-based exchanges utilizing the communication techniques.
[0247] Figure 6 An example process 600 is illustrated for explanatory purposes. Although the example process 600 describes a particular order of steps / operations, the order can be modified without departing from the scope of the present disclosure. For example, some of the steps / operations illustrated can be performed in parallel or in a different order that does not have a significant impact on the functionality of the process 600. In other examples, different components of an example device or system implementing the process 600 can perform functions substantially simultaneously or in a particular order.
[0248] In some examples, the process 600 is initiated after a registration and / or enrollment process in which a user and / or member platform can receive a UUEK for facilitating credential-less value exchanges. For example, as described herein, one or more enrollment processes can be preformed between an exchange platform and one or more service provider platforms to register a plurality of service provider instruments with the exchange platform. Thereafter, the exchange platform can generate a UUEK and issue the UUEK to the registered service provider platforms to initiate value-based exchanges using the registered service provider instruments without referencing a persistent credential of the service provider instruments. Additionally or alternatively, an enrollment process can be performed to enroll the registered service provider instruments maintained by the service provider platforms with a partner platform. In some examples, the exchange platform can facilitate the enrollment process and, in response to a successful enrollment, generate a UUEK and issue the UUEK to the partner platform to initiate future value-based exchanges.
[0249] In instances where a user wishes to perform a value-based exchange with a partner platform for which the user has enrolled an account, the partner platform can query the enrolled partner account and identify an issued UUEK for the user from the partner account to authorize the value-based exchange. In instances where a user wishes to perform a value-based exchange with a partner platform for which the user has not enrolled an account, the user can provide a previously issued UUEK (e.g., a UUEK issued to a service provider platform, etc.) to the partner platform (e.g., through a partner application, etc.) and the partner platform can use the UUEK to authorize the value-based exchange. For example, the partner platform can use the UUEK to issue an exchange request to the exchange platform to initiate the value-based exchange.
[0250] Using some of the communication techniques of the present disclosure, a member platform can issue an exchange request with object-level details that can be determined by the exchange platform. For example, by using a UUEK in place of a persistent credential of a service provider instrument, the communication techniques of the present disclosure can provide a mechanism for transmitting object-level details without compromising the security of the user, service provider instrument, or member platform. This enables the exchange platform to act as a determination engine to determine object-level insights for the exchange request. In accordance with the steps / operations of the process 600, these insights can be leveraged by the exchange platform to enforce member policies on behalf of the member platform without requiring continuous engagement of the member platform.
[0251] In some embodiments, the process 600 includes receiving, at step / operation 602, an exchange request having a UUEK. For example, an exchange platform (e.g., a partner service of the exchange platform, etc.) can receive an exchange request using a partner interface to perform a value-based exchange. The exchange request can indicate a UUEK containing an exchange identifier. Additionally or alternatively, the exchange request can include one or more request attributes. The one or more request attributes can include one or more object identifiers, object attributes, resolution flags, etc.
[0252] For example, the one or more request attributes can include a plurality of object identifiers corresponding to a plurality of objects associated with the value-based exchange. Additionally or alternatively, the one or more request attributes can include one or more object attributes for a plurality of objects. For example, the one or more object attributes can include one or more object-based attributes (e.g., one or more line item attributes), one or more exchange-based attributes (e.g., a quantity of objects, a location of objects, etc.). For example, the exchange request can indicate an exchange location from which the objects are to be obtained.
[0253] In some embodiments, the one or more object identifiers and / or object attributes correspond to one or more record data objects maintained by the exchange platform. For example, an object identifier of the exchange request can correspond to an object identifier of a record data object. Additionally or alternatively, one or more of the object attributes of the exchange request can correspond to one or more object attributes of a record data object. In some examples, the exchange platform can identify the one or more record data objects based at least in part on the one or more object identifiers and / or the one or more object attributes. In response to identifying the record data objects, the exchange platform can increment a count attribute of the object. For example, a count attribute of a respective record data object can be incremented in response to an exchange request referencing an object represented by the record data object. In some examples, the count attribute can be one of a plurality of count attributes for the object that enable the exchange platform to aggregate object-level insights across a plurality of different member platforms, locations, etc.
[0254] In some examples, the request attributes can indicate one or more request resolution flags. The request resolution flags can indicate one or more requesting member requirements (e.g., partner requirements, etc.) for the value-based exchange. For example, one or more request resolution flags can be set by a member of the exchange network providing the exchange request to the exchange platform. In some examples, the request resolution flags can indicate a partial exchange authorization or a full exchange authorization. The partial exchange authorization can authorize a partial completion of the value-based exchange, while the full exchange authorization can only authorize a full completion of the value-based exchange. For example, the full exchange authorization can require verification of all objects referenced by the value-based exchange to be performed by the exchange platform.
[0255] In some examples, the request attributes can include a member exchange reference (e.g., a reference to the value-based exchange by the member platform), a channel (e.g., a money exchange type of the financial value system, such as a push value transfer or a pull value transfer, a real-time payment, etc.), a currency (e.g., a currency used for the financial value system, etc.), an organization key (e.g., a platform identifier of a member organization), an organization category (e.g., an airline, a clothing, etc.), an agency key (e.g., a platform identifier of a retail location, etc.), an employee identifier, and / or any other traceable information for the value-based exchange.
[0256] In some embodiments, the process 600 includes identifying the exchange data object at step / operation 604. For example, the exchange platform (e.g., a partner service of the exchange platform, etc.) can identify the exchange data object based at least in part on the exchange identifier of the UUEK. For example, the exchange identifier can correspond to the exchange data object.
[0257] For example, as described herein, the UUEK can correspond to a partner platform and / or a service provider platform. For example, the UUEK can include a partner partition that identifies the partner platform in the case that the UUEK is published to the partner platform. In this case, the UUEK includes the exchange identifier that corresponds to the partner-exchange data object. For another example, the UUEK can include a service provider partition that can identify the service provider platform in the case that the UUEK is published to the service provider platform. In this case, the UUEK includes the exchange identifier that corresponds to the service provider-exchange data object. In some examples, the exchange platform can process the UUEK based at least in part on the member partition.
[0258] In some embodiments, an exchange platform (e.g., a partner service of the exchange platform, etc.) receives a UUEK that includes a partner partition that identifies a partner platform. The exchange platform can identify a partner-specific exchange data object using the exchange identifier. The partner-specific exchange data object can include a tool key that corresponds to a service provider tool of a member platform. The exchange platform can identify a system tool data object based at least in part on the tool key. For example, the exchange platform can identify the member platform based at least in part on a member partition of the tool key, and provide the tool key to a service (e.g., a service provider service, etc.) that corresponds to the member platform. The service can identify the system tool data object based at least in part on the tool key. The system tool data object can then be utilized to identify one or more identifiers (e.g., a user identifier, a tool identifier, etc.) to process the exchange request.
[0259] In some embodiments, an exchange platform (e.g., a partner service of the exchange platform, etc.) receives a UUEK that includes a service provider partition that identifies a service provider platform. The exchange platform (e.g., a partner service of the exchange platform, etc.) can determine that a partner-specific exchange data object is unavailable. In response to the determination, the exchange platform can identify a member platform based at least in part on the service provider partition, and provide the UUEK to a service (e.g., a service provider service, etc.) that corresponds to the member platform. The service can identify a service provider-specific exchange data object based at least in part on an exchange identifier of the UUEK. The service provider-specific exchange data object can be utilized to identify a system tool data object based at least in part on the member platform and the exchange identifier. The system tool data object can then be utilized to identify one or more identifiers (e.g., a user identifier, a tool identifier, etc.) to process the exchange request.
[0260] In some embodiments, process 600 includes determining one or more valid objects and / or invalid objects of the exchange request at step / operation 606. For example, an exchange platform (e.g., a validation service of the exchange platform, etc.) can determine one or more valid objects and / or one or more invalid objects of the exchange request based at least in part on a member policy associated with a service provider tool. In some examples, the exchange platform (e.g., a validation service of the exchange platform, etc.) can generate a valid data object and / or an invalid data object for the exchange request. The valid exchange data object can indicate one or more valid objects of the exchange request and / or one or more contextual attributes of the one or more valid objects. The invalid exchange data object can indicate one or more invalid objects of the exchange request and / or one or more contextual attributes of the one or more invalid objects.
[0261] In some embodiments, the exchange platform performs one or more screening operations to determine whether to validate and / or invalidate one or more objects of the exchange request. For example, a screening operation can be configured to invalidate an exchange request that violates one or more request restrictions. For example, a request restriction can indicate one or more parameters (e.g., geographic parameters, timing parameters, etc.) within which the service provider tool is restricted. For example, a member policy can indicate one or more authorized locations in which the service provider tool can be used. In some examples, the service provider tool can be completely restricted outside of the authorized locations.
[0262] For example, as described herein, the exchange request can indicate an exchange location. The exchange platform can determine one or more valid objects and one or more invalid objects of the exchange request based at least in part on a comparison between the exchange location and the one or more authorized locations.
[0263] In the case where the exchange location does not correspond to an authorized location, the exchange platform can proceed to step / operation 616 and provide an exchange response indicating a rejection of the exchange. In some examples, the exchange platform can provide the exchange response without providing a communication to the member platform associated with the service provider tool. In some examples, the exchange platform can provide a notification communication to the member platform to notify the member platform of the exchange rejection.
[0264] In the case where the exchange location corresponds to an authorized location, the exchange platform can determine one or more valid objects and / or invalid objects of the exchange request in accordance with step / operation 608. In this way, process 600 can conserve computational resources by continuously screening out invalid exchange requests before processing object-level features of the exchange request. Moreover, process 600 enables the exchange platform to preliminarily adjudicate exchange requests, thereby reducing the computational resource needs of the member platform that maintains the service provider tool.
[0265] In some embodiments, process 600 includes determining, at step / operation 608, whether the exchange request includes an invalid object. For example, the exchange platform (e.g., a verification service of the exchange platform, etc.) can determine whether the exchange request includes an invalid object. In the case where the exchange request does not include an invalid object, process 600 continues to perform step / operation 612. In the case where the exchange request includes an invalid object, then process 600 continues to perform step / operation 610.
[0266] In some embodiments, the process 600 includes determining, at step / operation 610, whether the exchange request includes a partial authentication flag. For example, the exchange request can include one or more request resolution flags that indicate a partial exchange authorization and / or a full exchange authorization. The exchange platform can determine whether the one or more request resolution flags indicate a partial exchange authorization. In the event that there is a partial exchange authorization and at least one valid object is identified, then the exchange platform can proceed to step / operation 612 in which the exchange authorization request is provided to the member platform. For example, in the event that at least one valid object is identified, the exchange platform can provide the exchange authorization request to the member platform in response to determining that the one or more request resolution flags indicate a partial exchange authorization. In the event that there is a full exchange authorization and / or at least one valid object is not identified for the exchange request, then the exchange platform can proceed to step / operation 616 in which an exchange response indicating an exchange rejection is provided to the member platform. In this way, the process 600 can conserve computing resources by continuously filtering exchange requests based at least in part on object-level characteristics of the exchange request. In this way, the process 600 enables the exchange platform to preliminarily determine exchange requests, thereby reducing the computing resource requirements of the member platforms that maintain the service provider tools.
[0267] In some embodiments, the exchange platform generates an exchange record for the value-based exchange based at least in part on the one or more valid and / or invalid objects. The exchange record can record one or more attributes of the value-based exchange. In some examples, the exchange record can be stored in a platform database. For example, the exchange record can be stored in association with a system tool identifier, a system user identifier, and / or the like. The exchange record can indicate the object status of each of the one or more valid objects, invalid objects, valid objects, and / or invalid objects and / or any other information associated with the value-based exchange.
[0268] For example, the exchange platform can record an object status for each object of the exchange request. The object status is a data entity that indicates a determination and / or classification of the object with respect to the value-based exchange. For example, the object status of a valid object can include an object eligible status and / or the like. As another example, the object status of an invalid object can include an object ineligible status and / or the like. The object status of an object that is not evaluated according to the member policy can include an object not evaluated status. The object status of an object that is not processed according to the member policy can include an object not specified status.
[0269] In some examples, the exchange platform can identify an object that does not correspond to an exchange request of a record data object. In such cases, the exchange platform can generate a record data object for the object using one or more object attributes (e.g., object identifiers, etc.) from the object of the exchange request.
[0270] In some embodiments, the process 600 includes providing an exchange authorization request to a member platform at step / operation 612. For example, the exchange platform (e.g., a service provider service of the exchange platform, etc.) can provide an exchange authorization request to a member platform corresponding to a service provider tool using a service provider interface. The exchange authorization request can indicate a tool identifier and / or one or more valid objects of the exchange request. For example, the exchange platform can generate the exchange authorization request based at least in part on a system tool data object identified according to one or more aspects of the UUEK. The exchange authorization request can include a tool key and / or a tool reference from the system tool data object.
[0271] In some examples, the exchange authorization request can indicate a user identifier associated with the service provider tool. For example, the exchange platform can generate the exchange authorization request based at least in part on a system user data object identified according to one or more aspects of the UUEK. In some examples, the system user data object can be identified based at least in part on a user identifier (e.g., a system user identifier) of the exchange data object. Additionally or alternatively, the system user data object can be identified based at least in part on a user identifier (e.g., a system user identifier) of the system tool data object. In some examples, the exchange authorization request can include a user key and / or a user reference from the system user data object.
[0272] In some embodiments, the exchange authorization request defines a request for a member to perform a value-based exchange. In some embodiments, the exchange authorization request is provided from the exchange platform to a member of the exchange network. For example, the exchange authorization request can be provided to a service provider of the exchange network in response to an exchange request from a partner of the exchange network. In some examples, the exchange authorization request can indicate valid exchange data objects of the exchange request. For example, the exchange authorization request can indicate one or more valid data objects, a valid exchange value, one or more object statuses associated with the one or more valid data objects, etc. In some examples, the exchange authorization request can indicate invalid exchange data objects of the exchange request. For example, the exchange authorization request can indicate one or more invalid data objects, one or more object statuses associated with the one or more invalid data objects, etc. For example, the exchange authorization request can indicate an exchange record of the value-based exchange.
[0273] In some embodiments, the exchange authorization request includes an exchange value that is modified based at least in part on one or more valid objects of the exchange request. For example, the exchange request can include a plurality of object values corresponding to a plurality of objects associated with the value-based exchange and an initial exchange value for the plurality of objects. The exchange platform can determine the exchange value for the value-based exchange by modifying the initial exchange value based at least in part on one or more of the plurality of object values corresponding to one or more valid objects. For example, the initial exchange value can be modified to include an aggregate value of one or more object values corresponding to one or more valid objects. For example, the aggregate value can exclude object values corresponding to one or more invalid objects of the exchange request. For example, the aggregate value can aggregate a plurality of object values from valid objects of the exchange request while removing all object values from invalid objects. In this way, the aggregate value can indicate an exchange value of valid objects that are authorized for acquisition using a particular service provider tool, and the exchange value excludes portions of the initial exchange value corresponding to invalid objects. In some examples, the exchange platform can provide the exchange authorization request to the member platform using the service provider interface. The exchange authorization request indicates the exchange value modified with respect to one or more valid objects.
[0274] In this way, the process 600 can conserve computational resources by continuously filtering exchange requests based at least in part on object-level features of the exchange requests. In this way, the process 600 enables the exchange platform to preliminarily adjudicate exchange requests at a granular level, an object level, to pre-validate objects on behalf of the member platform, thereby reducing computational resource demands of the member platform that maintains the service provider tool.
[0275] In some embodiments, the process 600 includes receiving an exchange authorization request at step / operation 614. For example, the exchange platform (e.g., a service provider service of the exchange platform, etc.) can receive an exchange authorization response indicating at least one of an exchange grant or an exchange denial using the service provider interface.
[0276] In some embodiments, the exchange authorization response defines a response to the exchange authorization request. In some embodiments, the exchange authorization response is provided to the exchange platform from a member of the exchange network. For example, the exchange authorization response can be provided by a service provider of the exchange network in response to an exchange authorization request indicating one or more valid objects from an exchange request.
[0277] In some embodiments, the exchange authorization response indicates at least one of an exchange approval or an exchange denial. The exchange authorization response can be based at least in part on a comparison between an exchange value (e.g., modified based at least in part on the valid object, etc.) and asset availability of the service provider tool. For example, in response to receiving the exchange authorization request, the member can be configured to compare the exchange value to the identified asset availability of the service provider tool. In the event that the asset availability exceeds the exchange value, the value-based exchange can be authorized (e.g., resulting in an exchange approval, etc.), otherwise the value-based exchange can be denied (e.g., resulting in an exchange denial).
[0278] In some embodiments, the exchange authorization response indicates one or more contextual response attributes. For example, the one or more contextual response attributes can indicate one or more impact factors of the exchange authorization response. For example, the impact factors can include a bad actor risk and / or fraud check, an error, a full approval, a tool closure, a tool-based risk and / or fraud check, a value deficiency, a UUEK invalidity, an overage (e.g., exceeding a UUEK or tool usage limit), a missing line item (e.g., for a value exchange that does not include a valid object), a tool not found, an account not found, a pin required, a partial approval, a member not available, a transaction risk and / or fraud check, an unsupported operation, a user to contact a member (e.g., the user can need to contact the member (e.g., service provider) to resolve an issue), a user risk and / or fraud check, and combinations thereof.
[0279] In some embodiments, the exchange platform can increment a count attribute for each record data object corresponding to a valid object that has been authorized for a value-based exchange. For example, in response to an authorization of an object represented by a record data object, a count attribute of the corresponding record data object can be incremented. In some examples, the count attribute can be one of a plurality of count attributes of the object that enable the exchange platform to aggregate object-level insights across multiple different member platforms, locations, etc.
[0280] In some embodiments, the process 600 includes providing an exchange response in step / operation 616. For example, the exchange platform (e.g., a partner service of the exchange platform, etc.) can provide an exchange response based at least in part on the exchange authorization response using a partner interface. For example, the exchange response can indicate an exchange approval, an exchange denial, one or more valid objects, and / or one or more invalid objects of the exchange request.
[0281] In some embodiments, the exchange response defines a response to the exchange request. In some embodiments, the exchange request is provided from the exchange platform to the member that provided the exchange request. The exchange response can indicate an exchange grant and / or an exchange denial. Additionally or alternatively, the exchange response can indicate valid data objects, invalid data objects, and / or contextual response attributes. For example, the exchange response can indicate one or more valid objects and / or one or more invalid objects for the exchange request.
[0282] In some embodiments, the exchange platform updates the exchange record based at least in part on the exchange response. For example, the exchange record can provide contextual information for the exchange request. The contextual information can indicate one or more aspects of the exchange request, the exchange response, the exchange authorization request, and / or the exchange authorization request.
[0283] Figure 7 A process flow for determining objects for value-based exchanges is provided in accordance with one or more embodiments of the present disclosure. The process flow describes a network-based process 700 for determining objects for value-based exchanges utilizing UEKs, member policies, and / or record data objects. As described herein, process 700 can be utilized to overcome various limitations of conventional exchange systems that are unable to determine various objects for value-based exchanges over a network. Process 700 can be implemented by one or more computing devices, entities, and / or systems described herein. For example, through various steps / operations of process 700, an exchange platform can overcome various limitations of conventional exchange mechanisms by utilizing determination techniques to enable more flexible entities for network communication with entities.
[0284] Figure 7 An example process 700 is shown for illustrative purposes. Although example process 700 describes a particular order of steps / operations, this order can be modified without departing from the scope of the present disclosure. For example, some of the steps / operations illustrated can be performed in parallel or in a different order that does not have a significant impact on the functionality of process 700. In other examples, different components of an example device or system implementing process 700 can perform functions substantially simultaneously or in a particular order.
[0285] In some examples, process 700 can include one or more sub-operations of step / operation 606 of process 600, where process 600 is configured to determine one or more valid objects and / or invalid objects for an exchange request. For example, process 700 can begin at step / operation 606 and end at step / operation 608.
[0286] In some embodiments, the process 700 includes identifying the service provider tool at step / operation 702. For example, the exchange platform (e.g., a partner service of the exchange platform, etc.) can identify the service provider tool based at least in part on the UUEK as described herein.
[0287] In some embodiments, the process 700 includes determining whether object verification is required at step / operation 704. For example, the exchange platform (e.g., a verification service of the exchange platform, etc.) can determine whether object verification is required for the value-based exchange based at least in part on the service provider tool and / or one or more objects of the value-based exchange. For example, object verification can be required for age-restricted objects (e.g., alcohol, tobacco, etc.). Additionally or alternatively, object verification can be required where one or more member policies correspond to the service provider tool (e.g., for electronic welfare transfers, healthcare benefits, etc.).
[0288] Where object verification is not required (e.g., none of the objects of the exchange request are age-restricted, member policies do not correspond to the service provider tool, etc.), the process 700 can return to step / operation 608 of Figure 6 .
[0289] Where object verification is required (e.g., an object of the exchange request is age-restricted, a member policy corresponds to the service provider tool, etc.), the process 700 can continue to step / operation 706 of Figure 7 .
[0290] In some embodiments, the process 700 includes identifying a member policy for the service provider tool at step / operation 706. For example, the exchange platform (e.g., a partner service of the exchange platform, etc.) can identify a member policy for the service provider tool. In some examples, the exchange platform can maintain and / or access a plurality of member policies. Each member policy can correspond to a member platform and / or a service provider tool of a member platform. In some examples, the exchange platform can identify the member policy based at least in part on the service provider tool. Additionally or alternatively, the exchange platform can identify a member platform corresponding to the service provider tool (e.g., based at least in part on a member partition, etc.) and identify the member policy based at least in part on the member platform.
[0291] In some examples, the member policy is based at least in part on a location associated with the exchange request. For example, the member policy can be identified based at least in part on the member platform and the location associated with the exchange request. In some examples, the location can include a user location. For example, the user location can include a permanent location of the user associated with the service provider tool (e.g., home address, residence, etc.). In some examples, the member policy can be based at least in part on the permanent location of the user (e.g., state of residence, etc.). In some examples, the exchange platform can determine a user identifier associated with the value-based exchange based at least in part on the UEK. The exchange platform can determine the user location based at least in part on a system user data object corresponding to the user identifier. In this case, the exchange platform can identify the member policy based at least in part on the member platform and the user location.
[0292] In some embodiments, the location is an exchange location that identifies a location from which the object is being acquired. For example, the exchange location can indicate a store address, etc. In some examples, the exchange location can be identified by the exchange request described herein. In this case, the exchange platform identifies the member policy based at least in part on the member platform, the service provider tool, and / or the exchange location.
[0293] In some embodiments, the process 700 includes determining one or more valid objects of the exchange request at step / operation 708. For example, the exchange platform can determine one or more valid objects based at least in part on a comparison between the member policy and the plurality of objects of the exchange request.
[0294] In some embodiments, a valid object is an object of a value-based exchange that is authorized according to the member policy. For example, a valid object can correspond to an object identifier and / or one or more object attributes that are authorized by the member policy. For example, in a financial value system, a valid object can be a product or service that is eligible for purchase using the service provider tool. For example, the product can be a gallon of milk that can be associated with a SKU code and / or one or more object attributes (e.g., “category: dairy”, “quantity: 1 gallon”). If the member policy corresponding to the service provider tool for the value-based exchange authorizes the SKU code and / or the one or more object attributes (“category: dairy”, “quantity: 1 gallon”, etc.), then the product can be a valid object for the value-based exchange.
[0295] In some examples, the member policy can include a plurality of authorized object identifiers. The exchange platform can determine one or more valid objects based at least in part on a comparison between the plurality of object identifiers of the exchange request and the plurality of authorized object identifiers of the member policy. For example, the one or more valid objects can include each object from the exchange request that has an object identifier that matches an authorized object identifier from the member policy.
[0296] Additionally or alternatively, the member policy can include a plurality of authorized object attributes. The exchange platform can identify a plurality of record data objects that correspond to the plurality of object identifiers of the exchange request. Each record data object can include a plurality of object attributes of the respective object. The exchange platform can determine one or more valid objects based at least in part on a comparison between the plurality of record data objects and the plurality of authorized object attributes. In some examples, for example, if the exchange request includes object attributes, the exchange platform can compare the object attributes of the exchange request to the member policy to determine the one or more valid objects.
[0297] In some embodiments, the exchange platform can increase a count attribute of each record data object that corresponds to a valid object. For example, the count attribute of a respective record data object can be increased in response to a validation of the object represented by the record data object. In some examples, the count attribute can be one of a plurality of count attributes of the object that enable the exchange platform to aggregate object-level insights across a plurality of different member platforms, locations, and the like.
[0298] In some embodiments, the process 700 includes determining one or more invalid objects of the exchange request at step / operation 710. For example, the exchange platform (e.g., a validation service of the exchange platform, etc.) can determine one or more invalid objects based at least in part on a comparison between the one or more valid objects and the plurality of objects associated with the value-based exchange. For example, the one or more invalid objects can include each object from the exchange request that is not validated according to the member policy. Additionally or alternatively, for example, if the member policy indicates a plurality of restricted objects, the member platform (e.g., a validation service of the member platform, etc.) can determine one or more invalid objects based at least in part on a comparison between the member policy and the plurality of objects of the exchange request, as described with reference to step / operation 708.
[0299] In some embodiments, invalid objects are objects of a value-based exchange that are not authorized according to a member policy. For example, invalid objects can correspond to object identifiers and / or one or more object attributes that are not authorized by a member policy. For example, in a financial value system, invalid objects can be products or services that are not eligible for purchase using a service provider tool. For example, a product can be one liter of alcohol that can be associated with a SKU code and / or one or more object attributes (e.g., “category: alcohol,” “quantity: liters,” etc.). If a member policy corresponding to a service provider tool for a value-based exchange restricts the SKU code and / or one or more object attributes (“category: alcohol,” “quantity: 1 liter,” etc.), the product can be an invalid object for the value-based exchange.
[0300] In some embodiments, valid exchange data objects are data objects that indicate one or more valid objects of a value-based exchange. In some examples, valid exchange data objects can be based at least in part on a comparison between an exchange request and a member policy corresponding to the exchange request. In some examples, valid exchange data objects can include a plurality of object identifiers and / or one or more object attributes of one or more valid objects of a value-based exchange.
[0301] In some examples, valid exchange data objects can indicate an exchange value. The exchange value can be an aggregate value of each of the valid data objects. In some examples, the exchange value can be adjusted according to some techniques of the present disclosure to modify the exchange value from an initial exchange value to satisfy valid objects of a value-based exchange.
[0302] In some examples, valid exchange data objects can indicate one or more object statuses of one or more valid objects.
[0303] In some embodiments, the exchange platform generates invalid exchange data objects for an exchange request. Invalid exchange data objects can be data objects that indicate one or more invalid objects of a value-based exchange. In some examples, invalid exchange data objects can be based at least in part on a comparison between an exchange request and a member policy corresponding to the exchange request. For example, invalid exchange data objects can indicate a plurality of invalid objects of a value-based exchange. Additionally or alternatively, invalid exchange data objects can be based at least in part on an exchange request and valid exchange data objects. For example, invalid exchange data objects can indicate a plurality of invalid objects of a value-based exchange. For example, invalid exchange data objects can indicate a plurality of objects of a value-based exchange that are not included in valid exchange data objects.
[0304] The invalid exchange data object can include a plurality of object identifiers and / or one or more object attributes of one or more invalid objects of the value-based exchange. In some examples, the invalid exchange data object can indicate one or more object statuses of the one or more invalid objects.
[0305] Figure 8 A message flow diagram is provided that illustrates steps / operations for adjudicating a value-based exchange adjusted according to a service provider tool. It will be recognized that the steps / operations of this message flow diagram can be performed and implemented using the corresponding steps / operations in Figure 6 and Figure 7 .
[0306] At step / operation 804, the user 802 initiates a value-based exchange to acquire a plurality of objects from the partner platform 420 using a service provider tool maintained by the service provider platform 440.
[0307] At step / operation 806, the partner platform 420 provides an exchange request to an exchange platform (e.g., a partner service of the exchange platform, etc.) to perform the value-based exchange. The exchange request includes the UUEK and indicates the plurality of objects. For example, the partner platform 420 can send an exchange request with the UUEK and the plurality of object identifiers to an exchange platform (e.g., a partner service 410 of the exchange platform, etc.).
[0308] At step / operation 808, the exchange platform (e.g., the partner service 410 of the exchange platform, etc.) provides the UUEK and data indicating the plurality of objects to a service provider service 412 corresponding to the UUEK. For example, the exchange platform (e.g., the partner service 410 of the exchange platform, etc.) can invoke the service provider service 412 using the UUEK and the plurality of object identifiers of the exchange request.
[0309] At step / operation 810, the exchange platform (e.g., the service provider service 412 of the exchange platform, etc.) identifies a service provider tool and / or user corresponding to the UUEK. For example, the exchange platform (e.g., the service provider service 412 of the exchange platform, etc.) can query system user data objects and system tool data objects associated with the UUEK.
[0310] At step / operation 812, the exchange platform (e.g., the service provider service 412 of the exchange platform, etc.) determines whether object validation is required for the value-based exchange based at least in part on the user and / or the service provider tool. For example, the exchange platform (e.g., the service provider service 412 of the exchange platform, etc.) can determine whether object validation is required for the exchange request based at least in part on the UUEK, the user, the service provider tool, and / or the object identifiers of the exchange request.
[0311] In response to determining that object validation is required, at step / operation 814, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) provides data indicative of the user and / or the plurality of objects to the validation service 408. For example, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) can invoke the validation service 408 using the plurality of object identifiers of the exchange request and the system user data object.
[0312] At step / operation 816, the exchange platform (e.g., the exchange platform’s validation service 408, etc.) compares the plurality of objects to the member policies corresponding to the service provider tools. For example, the exchange platform (e.g., the exchange platform’s validation service 408, etc.) can query the object identifiers of the exchange request.
[0313] At step / operation 818, the exchange platform (e.g., the exchange platform’s validation service 408, etc.) validates one or more of the plurality of objects based at least in part on the comparison. For example, the exchange platform (e.g., the exchange platform’s validation service 408, etc.) can validate one or more of the plurality of object identifiers as discovered in the member policies corresponding to the service provider tools.
[0314] At step / operation 820, the exchange platform (e.g., the exchange platform’s validation service 408, etc.) provides data indicative of the plurality of valid objects to the service provider service 412. In some examples, the exchange platform (e.g., the exchange platform’s validation service 408, etc.) can provide a list of invalid object identifiers to the service provider service 412 to identify valid objects (e.g., by distinguishing valid objects from invalid objects). For example, the exchange platform (e.g., the exchange platform’s partner service, etc.) can return a list of non-qualified object identifiers for a value-based exchange.
[0315] At step / operation 822, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) modifies the exchange value based at least in part on the one or more valid objects. For example, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) can adjust an authorized amount of the service provider platform 440 where applicable (e.g., one or more valid objects), or reject the value-based exchange where appropriate (e.g., no valid objects).
[0316] At step / operation 824, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) provides an exchange authorization request to the service provider platform 440. For example, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) can initiate a call (e.g., an API call, etc.) to the service provider platform 440 to request authorization for the sum of eligible objects among the plurality of objects of the exchange request.
[0317] At step / operation 826, the service provider platform 440 provides an exchange authorization response to the exchange platform (e.g., the exchange platform’s service provider service 412, etc.). For example, the service provider platform 440 can return an authorization decision (e.g., approval, denial, etc.).
[0318] At step / operation 828, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) provides the exchange authorization response and / or data indicating one or more valid objects to the partner service 410. In some examples, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) can provide a list of invalid object identifiers to the partner service 410. For example, the exchange platform (e.g., the exchange platform’s service provider service 412, etc.) can return an authorization decision and details of object identifiers (e.g., object identifiers of one or more invalid objects) that do not qualify for acquisition (e.g., purchase, etc.).
[0319] At step / operation 830, the exchange platform (e.g., the exchange platform’s partner service 410, etc.) provides an exchange response to the partner platform 420. The exchange response can indicate the exchange authorization response and / or data indicating one or more valid objects. In some examples, the exchange platform (e.g., the exchange platform’s partner service 410, etc.) can provide a list of invalid object identifiers to the partner platform 420. For example, the partner service 410 can return an authorization decision and details of object identifiers (e.g., object identifiers of one or more invalid objects) that do not qualify for acquisition (e.g., approved $100, remove alcoholic beverages, etc.).
[0320] At step / operation 832, the partner platform 420 provides an indication of the exchange response to the user 802. For example, the partner platform 420 can return an authorization decision to the user 802.
[0321] VI. Conclusion
[0322] Those skilled in the art will appreciate many modifications and other embodiments of the present disclosure that arise out of the teaching and knowledge of the field presented in the foregoing description and associated drawings. As should be apparent, the present disclosure is not limited to the specific embodiments described and are intended to include any modifications within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims
1. A computer-implemented method, comprising: (1) At the very first moment, during the registration process: (i) A tool reference is received from a service provider platform by one or more processors of an intermediary platform, the tool reference including a unique identifier for referencing a member tool identifier for a service provider tool maintained by the service provider platform, wherein the tool reference is (a) a value different from the member tool identifier and (b) mapped to the member tool identifier; (ii) The one or more processors generate a tool key corresponding to the service provider tool by encapsulating a universally unique identifier (UUID) with a service provider partition corresponding to the service provider platform; (iii) The UUID and the tool reference are stored in a system tool data object by one or more processors; as well as (iv) The tool key is provided to the service provider platform by one or more processors; (2) In the second instance, in response to successful registration with the partner platform: (i) A universally unique temporary key (UUEK) comprising an exchange identifier and a partner partition identifying the partner platform is generated by one or more processors, wherein the exchange identifier and the partner partition are located according to a key format; and (ii) The UUEK is provided to the partner platform by one or more processors; (3) The third time after the first and second times: (i) The one or more processors receive a switching request from the partner platform via a first application programming interface (API) to perform a network-based switching, the switching request including the UUEK; (ii) A partner-specific exchange data object is identified by the one or more processors at least in part based on the exchange identifier of the UUEK, wherein the partner-specific exchange data object includes the tool key; (iii) The system tool data object is identified by the one or more processors at least in part based on the tool key within the collaborator-specific exchange data object; (iv) The one or more processors identify the membership policy corresponding to the service provider platform based at least in part on the service provider partition of the tool key; (v) The one or more processors determine, at least in part, one or more valid objects and one or more invalid objects of the exchange request based on the membership policy; (vi) The one or more processors provide an exchange authorization request to the service provider platform via a second API, wherein the exchange authorization request includes the tool key, the tool reference, and the one or more valid objects of the exchange request; (vii) The one or more processors receive an exchange authorization response from the service provider platform via a second API, the exchange authorization response indicating at least one of exchange permission or exchange rejection; and (viii) The one or more processors provide an exchange response to the partner platform via a first API, at least in part based on the exchange authorization response, wherein the exchange response indicates (a) exchange permission or exchange rejection and (b) the one or more invalid objects of the exchange request.
2. The computer-implemented method according to claim 1, wherein, The exchange request includes one or more request resolution flags indicating partial or full exchange authorization, and wherein providing the exchange authorization request to the service provider platform includes: Determining that one or more request resolution flags indicate the partial exchange authorization; and In response to determining that one or more request resolution flags indicate the partial exchange authorization, the exchange authorization request is provided to the service provider platform.
3. The computer-implemented method according to claim 1, wherein, The exchange request includes multiple object identifiers corresponding to multiple objects associated with the network-based exchange.
4. The computer-implemented method according to claim 3, wherein, The object identifier is the unit of measurement for inventory.
5. The computer-implemented method according to claim 3, wherein, The membership policy includes multiple authorized object identifiers, and determining the one or more valid objects and the one or more invalid objects in the exchange request includes: The determination of one or more valid objects is based at least in part on comparisons between the plurality of object identifiers and the plurality of authorized object identifiers; and The one or more invalid objects are determined at least in part based on a comparison between the one or more valid objects and the plurality of objects associated with the network-based exchange.
6. The computer-implemented method according to claim 3, wherein, The membership policy includes multiple authorized object attributes, and determining the one or more valid objects and the one or more invalid objects in the exchange request includes: Identify multiple record data objects corresponding to the multiple object identifiers, wherein the record data objects include multiple object attributes of the objects; The determination of one or more valid objects is based at least in part on comparisons between the plurality of recorded data objects and the plurality of authorized object attributes; and The one or more invalid objects are determined at least in part based on a comparison between the one or more valid objects and the plurality of objects associated with the network-based exchange.
7. The computer-implemented method according to claim 6, wherein, The plurality of object attributes include at least one of spatial attributes, count attributes, value attributes, source attributes, component attributes, or category attributes.
8. The computer-implemented method of claim 7 further includes incrementing the object's count attribute in response to the exchange request.
9. The computer-implemented method according to claim 1, wherein, The membership policy is identified at least in part based on the service provider platform and the location associated with the exchange request.
10. The computer-implemented method according to claim 9, wherein, The location includes an exchange location, and the exchange request indicates the exchange location.
11. The computer-implemented method according to claim 9, wherein, The location includes the user's location, and the computer-implemented method further includes: The user identifier associated with the network-based exchange is determined at least in part based on the UUEK; The user's location is determined at least in part based on the system user data object corresponding to the user identifier; and The membership policy is identified at least in part based on the service provider platform and the user location.
12. The computer-implemented method according to claim 11, wherein, The exchange request indicates an exchange location, and the membership policy indicates one or more authorized locations, wherein the computer-implemented method further includes: The one or more valid objects and the one or more invalid objects of the exchange request are determined at least in part based on a comparison between the exchange location and the one or more authorized locations.
13. The computer-implemented method according to claim 1, wherein, The exchange request includes multiple object values corresponding to multiple objects associated with the network-based exchange and an initial exchange value for the multiple objects, and wherein the computer-implemented method further includes: The exchange value for the network-based exchange is determined by modifying the initial exchange value, at least in part, based on one or more object values corresponding to one or more valid objects among the plurality of object values; and The exchange authorization request is provided to the service provider platform, wherein the exchange authorization request indicates the exchange value.
14. A system comprising: Service provider platform; Partner platform; as well as An intermediary platform comprising a memory and one or more processors communicatively coupled to the memory, the one or more processors being configured to: (1) At the very first moment, during the registration process: (i) Receive a tool reference from the service provider platform, the tool reference including a unique identifier for referencing a member tool identifier for a service provider tool maintained by the service provider platform, wherein the tool reference is (a) a value different from the member tool identifier and (b) mapped to the member tool identifier; (ii) Generate a tool key corresponding to the service provider tool by encapsulating a universally unique identifier (UUID) with the service provider partition corresponding to the service provider platform; (iii) Store the UUID and the tool reference within the system tool data object; as well as (iv) Provide the tool key to the service provider platform; (2) In the second instance, in response to successful registration with the partner platform: (i) Generate a universally unique temporary key (UUEK) including an exchange identifier and a partner partition, wherein the partner partition identifies the partner platform, and locate the exchange identifier and the partner partition according to the key format; and (ii) Provide the UUEK to the partner platform; (3) The third time after the first and second times: (i) Receive an exchange request from the partner platform via a first application programming interface (API) to perform a network-based exchange, the exchange request including the UUEK; (ii) Identifying a partner-specific exchange data object at least in part based on the exchange identifier of the UUEK, wherein the partner-specific exchange data object includes the tool key; (iii) Identifying the system tool data object at least in part based on the tool key within the partner-specific exchange data object; (iv) Identify the membership policy corresponding to the service provider platform based at least in part on the service provider partition of the tool key; (v) To determine one or more valid objects and one or more invalid objects of the exchange request, at least in part based on the membership policy; (vi) Provide an exchange authorization request to the service provider platform via a second API, wherein the exchange authorization request includes the tool key, the tool reference, and one or more valid objects of the exchange request; (vii) Receive an exchange authorization response from the service provider platform, the exchange authorization response indicating at least one of exchange permission or exchange rejection; and (viii) Provide an exchange response to the partner platform via a first API, at least in part based on the exchange authorization response, wherein the exchange response indicates (a) exchange permission or exchange rejection and (b) the one or more invalid objects of the exchange request.
15. The system according to claim 14, wherein, The exchange request includes one or more request resolution flags indicating partial or full exchange authorization, and wherein providing the exchange authorization request to the service provider platform includes: Determining that one or more request resolution flags indicate the partial exchange authorization; and In response to determining that one or more request resolution flags indicate the partial exchange authorization, the exchange authorization request is provided to the service provider platform.
16. The system according to claim 14, wherein, The exchange request includes multiple object identifiers corresponding to multiple objects associated with the network-based exchange.
17. The system according to claim 16, wherein, The object identifier is the unit of measurement for inventory.
18. The system according to claim 17, wherein, The membership policy includes multiple authorized object identifiers, and determining the one or more valid objects and the one or more invalid objects in the exchange request includes: The determination of one or more valid objects is based at least in part on comparisons between the plurality of object identifiers and the plurality of authorized object identifiers; and The one or more invalid objects are determined at least in part based on a comparison between the one or more valid objects and the plurality of objects associated with the network-based exchange.
19. One or more non-transitory computer-readable storage media, comprising instructions that, when executed by one or more processors, cause the one or more processors to: (1) At the very first moment, during the registration process: (i) Receive a tool reference from the service provider platform, the tool reference including a unique identifier for referencing a member tool identifier for a service provider tool maintained by the service provider platform, wherein the tool reference is (a) a value different from the member tool identifier and (b) is mapped to the member tool identifier; (ii) Generate a tool key corresponding to the service provider tool by encapsulating a universally unique identifier (UUID) with the service provider partition corresponding to the service provider platform; (iii) Store the UUID and the tool reference within the system tool data object; as well as (iv) Provide the tool key to the service provider platform; (2) In the second instance, in response to successful registration with the partner platform: (i) Generate a universally unique temporary key (UUEK) including an exchange identifier and a partner partition, wherein the partner partition identifies the partner platform, and locate the exchange identifier and the partner partition according to the key format; and (ii) Provide the UUEK to the partner platform; (3) The third time after the first and second times: (i) Receive an exchange request from the partner platform via a first application programming interface (API) to perform a network-based exchange, the exchange request including the UUEK; (ii) Identifying a partner-specific exchange data object at least in part based on the exchange identifier of the UUEK, wherein the partner-specific exchange data object includes the tool key; (iii) Identifying the system tool data object at least in part based on the tool key within the partner-specific exchange data object; (iv) Identify the membership policy corresponding to the service provider platform based at least in part on the service provider partition of the tool key; (v) To determine one or more valid objects and one or more invalid objects of the exchange request, at least in part based on the membership policy; (vi) Provide an exchange authorization request to the service provider platform via a second API, wherein the exchange authorization request includes the tool key, the tool reference, and one or more valid objects of the exchange request; (vii) Receive an exchange authorization response from the service provider platform via a second API, the exchange authorization response indicating at least one of exchange permission or exchange rejection; and (viii) Provide an exchange response to the partner platform via a first API, at least in part based on the exchange authorization response, wherein the exchange response indicates (a) exchange permission or exchange rejection and (b) the one or more invalid objects of the exchange request.
20. One or more non-transitory computer-readable storage media according to claim 19, wherein, The exchange request includes multiple object values corresponding to multiple objects associated with the network-based exchange, and an initial exchange value for the multiple objects, and wherein the one or more processors are also involved. The exchange value for the network-based exchange is determined by modifying the initial exchange value, at least in part, based on one or more object values corresponding to one or more valid objects among the plurality of object values; and The exchange authorization request is provided to the service provider platform, wherein the exchange authorization request indicates the exchange value.
Citation Information
Patent Citations
Systems and methods of real-time processing
CN113711258A
Automated substantiation of product level specific account payments
US20100145810A1
Systems and Methods for Use in Facilitating Application of Services for Purchase Transactions Based on Tokens
US20180047024A1