IP Library Granted Patent US 12665699
Granted Patent B1
US 12665699 · App. 19/555,539 · Granted Jun 23, 2026

Cloud-based real-time messaging layer for resource transmission

Inventors: Matthew Smalley (Gravesend, GB); Charles C. Tsai (Jersey City, NJ); Keshava Kottapally (Hillsborough, NJ)
Assignee: Citibank, N.A.
H04L1/0047
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12665699
App. No.
19/555,539
Granted
Jun 23, 2026
Kind
B1
Abstract

Methods and systems for cloud-based resource transmission are disclosed. A system may receive a resource allocation message from a computing device in a source encoding. The message may be transformed into a destination encoding using a transformation map to generate an encoded message. The encoded message may be transmitted to a message processing system. An error message with an error code may be received in response. The system may determine which message caused the error based on the error code. It may be determined that the first computing device caused the error. An indication of the error code may be transmitted to the first computing device. This approach may enable efficient handling and error resolution for resource allocation messages across multiple encodings and devices.

Claims (98)

1 . A system for performing cloud-based resource transmission, the system comprising:

one or more processors; and

one or more memories configured to store instructions that when executed by the one or more processors perform operations comprising:

receiving a plurality of resource allocation messages from a plurality of computing devices, wherein each resource allocation message of the plurality of resource allocation messages comprises a corresponding plurality of parameters associated with a corresponding set of resources;

determining, based on a corresponding computing device of the plurality of computing devices and on a corresponding message type of each message of the plurality of resource allocation messages retrieved from the corresponding plurality of parameters, a corresponding transformation map of a plurality of transformation maps for transforming each message of the plurality of resource allocation messages;

transforming, using one or more of the plurality of transformation maps, each message from a corresponding source encoding of a plurality of source encodings into a corresponding destination encoding of a plurality of destination encodings to generate a plurality of encoded messages;

transmitting the plurality of encoded messages to a message processing system, wherein the message processing system processes the plurality of encoded messages to generate a plurality of records;

subsequently to transmitting the plurality of encoded messages, receiving, from a first computing device of the plurality of computing devices, a new resource allocation message in a source encoding of the plurality of source encodings;

transforming, using a first transformation map of the plurality of transformation maps, the new resource allocation message into a destination encoding of the plurality of destination encodings to generate an encoded resource allocation message;

transmitting the encoded resource allocation message to the message processing system;

receiving, from the message processing system and in response to the encoded resource allocation message, an error message generated based on the encoded resource allocation message, wherein the error message comprises an error code;

determining, based on the error code, a message of the plurality of resource allocation messages associated with the error code;

determining, based on the message of the plurality of resource allocation messages and the error code, that the first computing device has caused an error associated with the error code; and

transmitting an indication of the error code to the first computing device.

2 . The system of claim 1 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving from the first computing device an updated resource allocation message;

transforming, using the first transformation map, the updated resource allocation message that fixes the error into encoded updated resource allocation message; and

transmitting the encoded updated resource allocation message to the message processing system, wherein the message processing system fixes the error using the encoded updated resource allocation message.

3 . The system of claim 2 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving, from the message processing system, an acknowledgment indicating that the updated resource allocation message has been processed; and

based on the acknowledgment and in response to the plurality of encoded messages, generating a resource state using a plurality of acknowledgements received from the message processing system.

4 . The system of claim 3 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving, from the message processing system, a plurality of responses to the plurality of encoded messages;

aggregating the plurality of responses into a predetermined dataset;

identifying, based on aggregating the plurality of responses, a plurality of data fields within the predetermined dataset that do not have values received within the plurality of responses; and

querying, the message processing system, for the values to insert into the plurality of data fields.

5 . The system of claim 1 , wherein the instructions for receiving the plurality of resource allocation messages from the plurality of computing devices, further cause the one or more processors to perform operations comprising:

receiving, from a second computing device of the plurality of computing devices, an application programming interface call for a first application programming interface of a plurality of application programming interfaces; and

storing a first identifier of the first application programming interface in association with data associated with the application programming interface call.

6 . The system of claim 1 , wherein the instructions for determining the corresponding transformation map of the plurality of transformation maps for transforming each message of the plurality of resource allocation messages further cause the one or more processors to perform operations comprising:

identifying each corresponding computing device of the plurality of computing devices from which each message has been sent;

determining the corresponding message type of each message of the plurality of resource allocation messages, wherein corresponding message types comprise an application programming interface message and a webhook message;

determining, a second transformation map for a first message, based on type data associated with a corresponding webhook and the corresponding computing device; and

determining, a third transformation map for a second message, based on the type data associated with a corresponding application programming interface call and the corresponding computing device.

7 . The system of claim 6 , wherein the instructions for transmitting the indication of the error code to the first computing device further cause the one or more processors to perform operations comprising:

generating an error package comprising the error code, the type data associated with the corresponding application programming interface call or the corresponding webhook, and error data received from the message processing system; and

transmitting the error package to the first computing device.

8 . A method for performing cloud-based resource transmission, the method comprising:

receiving, from a first computing device of a plurality of computing devices, a new resource allocation message in a source encoding of a plurality of source encodings;

transforming, using a first transformation map of a plurality of transformation maps, the new resource allocation message into a destination encoding of a plurality of destination encodings to generate an encoded resource allocation message;

transmitting the encoded resource allocation message to a message processing system;

receiving, from the message processing system in response to the encoded resource allocation message, an error message generated based on the encoded resource allocation message, wherein the error message comprises an error code;

determining, based on the error code, a message of a plurality of resource allocation messages associated with the error code, wherein messages within the plurality of resource allocation messages were previously received, transformed using corresponding transformation maps of the plurality of transformation maps, and transmitted to the message processing system;

determining, based on the message of the plurality of resource allocation messages and the error code, that the first computing device has caused an error associated with the error code; and

transmitting an indication of the error code to the first computing device.

9 . The method of claim 8 , further comprising:

receiving the plurality of resource allocation messages from the plurality of computing devices, wherein each resource allocation message of the plurality of resource allocation messages comprises a corresponding plurality of parameters associated with a corresponding set of resources;

determining, based on a corresponding computing device of the plurality of computing devices and a corresponding message type of each message of the plurality of resource allocation messages retrieved from the corresponding plurality of parameters, a corresponding transformation map of the plurality of transformation maps for transforming each message of the plurality of resource allocation messages;

transforming, using the plurality of transformation maps, each message from a corresponding source encoding of the plurality of source encodings into a corresponding destination encoding of the plurality of destination encodings to generate a plurality of encoded messages; and

transmitting the plurality of encoded messages to the message processing system, wherein the message processing system processes the plurality of encoded messages to generate a plurality of records.

10 . The method of claim 9 , further comprising:

receiving from the first computing device an updated resource allocation message;

transforming, using the first transformation map, the updated resource allocation message that fixes the error into encoded updated resource allocation message; and

transmitting the encoded updated resource allocation message to the message processing system, wherein the message processing system fixes the error using the encoded updated resource allocation message.

11 . The method of claim 10 , further comprising:

receiving, from the message processing system, an acknowledgment indicating that the updated resource allocation message has been processed; and

based on the acknowledgment and in response to the plurality of encoded messages, generating a resource state using a plurality of acknowledgements received from the message processing system.

12 . The method of claim 11 , further comprising:

receiving, from the message processing system, a plurality of responses to the plurality of encoded messages;

aggregating the plurality of responses into a predetermined dataset;

identifying, based on aggregating the plurality of responses, a plurality of data fields within the predetermined dataset that do not have values received within the plurality of responses; and

querying, the message processing system, for the values to insert into the plurality of data fields.

13 . The method of claim 9 , wherein determining the corresponding transformation map of the plurality of transformation maps for transforming each message of the plurality of resource allocation messages further comprises:

identifying each corresponding computing device of the plurality of computing devices from which each message has been sent;

determining the corresponding message type of each message of the plurality of resource allocation messages, wherein corresponding message types comprise an application programming interface message and a webhook message;

determining, a second transformation map for a first message, based on type data associated with a corresponding webhook and the corresponding computing device; and

determining, a third transformation map for a second message, based on the type data associated with a corresponding application programming interface call and the corresponding computing device.

14 . The method of claim 8 , wherein receiving the plurality of resource allocation messages from the plurality of computing devices further comprises:

receiving, from a second computing device of the plurality of computing devices, an application programming interface call for a first application programming interface of a plurality of application programming interfaces; and

storing a first identifier of the first application programming interface in association with data associated with the application programming interface call.

15 . The method of claim 14 , wherein transmitting the indication of the error code to the first computing device further comprises:

generating an error package comprising the error code, type data associated with each corresponding application programming interface call or each corresponding webhook, and error data received from the message processing system; and

transmitting the error package to the first computing device.

16 . One or more non-transitory, computer-readable media storing instructions thereon, wherein the instructions cause one or more processors to perform operations comprising:

receiving, from a first computing device of a plurality of computing devices, a new resource allocation message in a source encoding of a plurality of source encodings;

transforming, using a first transformation map of a plurality of transformation maps, the new resource allocation message into a destination encoding of a plurality of destination encodings to generate an encoded resource allocation message;

transmitting the encoded resource allocation message to a message processing system;

receiving, from the message processing system in response to the encoded resource allocation message, an error message generated based on the encoded resource allocation message, wherein the error message comprises an error code;

determining, based on the error code, a message of a plurality of resource allocation messages associated with the error code, wherein messages within the plurality of resource allocation messages were previously received, transformed using corresponding transformation maps of the plurality of transformation maps, and transmitted to the message processing system;

determining, based on the message of the plurality of resource allocation messages and the error code, that the first computing device has caused an error associated with the error code; and

transmitting an indication of the error code to the first computing device.

17 . The one or more non-transitory, computer-readable media of claim 16 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving the plurality of resource allocation messages from the plurality of computing devices, wherein each resource allocation message of the plurality of resource allocation messages comprises a corresponding plurality of parameters associated with a corresponding set of resources;

determining, based on a corresponding computing device of the plurality of computing devices and a corresponding message type of each message of the plurality of resource allocation messages retrieved from the corresponding plurality of parameters, a corresponding transformation map of the plurality of transformation maps for transforming each message of the plurality of resource allocation messages;

transforming, using the plurality of transformation maps, each message from a corresponding source encoding of the plurality of source encodings into a corresponding destination encoding of the plurality of destination encodings to generate a plurality of encoded messages; and

transmitting the plurality of encoded messages to the message processing system, wherein the message processing system processes the plurality of encoded messages to generate a plurality of records.

18 . The one or more non-transitory, computer-readable media of claim 17 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving from the first computing device an updated resource allocation message;

transforming, using the first transformation map, the updated resource allocation message that fixes the error into encoded updated resource allocation message; and

transmitting the encoded updated resource allocation message to the message processing system, wherein the message processing system fixes the error using the encoded updated resource allocation message.

19 . The one or more non-transitory, computer-readable media of claim 18 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving, from the message processing system, an acknowledgment indicating that the updated resource allocation message has been processed; and

based on the acknowledgment and in response to the plurality of encoded messages, generating a resource state using a plurality of acknowledgements received from the message processing system.

20 . The one or more non-transitory, computer-readable media of claim 19 , wherein the instructions further cause the one or more processors to perform operations comprising:

receiving, from the message processing system, a plurality of responses to the plurality of encoded messages;

aggregating the plurality of responses into a predetermined dataset;

identifying, based on aggregating the plurality of responses, a plurality of data fields within the predetermined dataset that do not have values received within the plurality of responses; and

querying, the message processing system, for the values to insert into the plurality of data fields.