IP Library Granted Patent US 12,647,521
Granted Patent B1
US 12,647,521 · App. 18/458,347 · Granted Jun 2, 2026

Message-speed evaluation of event-based contract data

Inventors: Dana Majid (Amsterdam, NL); Robert Vis (Amsterdam, NL)
Assignee: Bird Bidco B.V.
H04M15/8221H04W4/14
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,647,521
App. No.
18/458,347
Granted
Jun 2, 2026
Kind
B1
Abstract

A computer-implemented method, comprising using a message application processor, programmatically receiving a first request to determine a fee associated with sending a digital electronic message using any one of a plurality of different communication channels, the request comprising at least a product identifier and an organization identifier; in response to the request, the message application processor executing: extracting the product identifier and the organization identifier from the message; based on the organization identifier, retrieving from digital data storage one or more configuration values that are associated with an organization corresponding to the organization identifier; the message application processor obtaining a time value corresponding to a then-current time; the message application processor querying the digital data storage, based on the product identifier and the time value, an applicable pricing for the message and corresponding to the product identifier and the time value; the message application processor causing digitally creating and storing a fee charge record based on the applicable pricing.

Claims (69)

1 . A computer-implemented method comprising:

using a message application processor, programmatically receiving a first request to determine a fee associated with sending a digital electronic message using any one of a plurality of different communication channels, the first request comprising at least a product identifier and an organization identifier;

in response to the first request, the message application processor executing: extracting the product identifier and the organization identifier from the message; based on the organization identifier, retrieving from digital data storage one or more configuration values that are associated with an organization corresponding to the organization identifier;

the message application processor obtaining a time value corresponding to a then-current time;

the message application processor querying the digital data storage, based on the product identifier and the time value, an applicable pricing for the message and corresponding to the product identifier and the time value;

the message application processor causing digitally creating and storing a fee charge record based on the applicable pricing.

2 . The computer-implemented method of claim 1 , further comprising the message application processor signaling a charging service to create and store a fee charge event based on the applicable pricing.

3 . The computer-implemented method of claim 1 , further comprising:

the message application processor retrieving, based on the product identifier, one or more of first data specifying a bundle that is associated with the organization identifier and the product identifier and second data specifying a product context that is associated with the product identifier;

the message application processor updating a price applicable to the first message based upon one or more of the first data and the second data.

4 . The computer-implemented method of claim 1 , further comprising:

a database being communicatively coupled to the message application processor;

the product identifier being one of a plurality of different product identifiers each corresponding to a different electronic digital messaging product of a product family, each of the different product identifiers being associated with at least one pricing, each pricing being associated with one or more dimensions;

the database being configured according to a relational table schema that includes tables specifying each of the plurality of different product identifiers, the product family, the pricing, and the one or more dimensions.

5 . The computer-implemented method of claim 1 , further comprising the message application processor executing all of claim 1 in real-time for the message and each other message among thousands to millions of messages per second.

6 . The computer-implemented method of claim 1 , further comprising the message application processor executing all of claim 1 within 5 ms to 250 ms for the message, and processing from thousands to millions of other electronic messages per second using the steps of claim 1 within 5 ms to 250 ms for each of the other electronic messages.

7 . The computer-implemented method of claim 1 , the plurality of different communication channels comprising two or more of SMS; MMS; WHATSAPP; FACEBOOK MESSENGER; WEIXIN/WECHAT; QQ; TELEGRAM; SNAPCHAT; SLACK; SIGNAL; SKYPE; DISCORD; VIBER.

8 . The computer-implemented method of claim 1 , further comprising:

a database being communicatively coupled to the message application processor;

the plurality of different communication channels comprising two or more of SMS; MMS; WHATSAPP; FACEBOOK MESSENGER; WEIXIN/WECHAT; QQ; TELEGRAM; SNAPCHAT; SLACK; SIGNAL; SKYPE; DISCORD; VIBER;

the product identifier being one of a plurality of different product identifiers each corresponding to a different electronic digital messaging product of a product family, each different electronic digital messaging product corresponding to a service of sending a messaging using a particular one of the plurality of different communication channels, each of the different product identifiers being associated with at least one pricing, each pricing being associated with one or more dimensions;

the database being configured according to a relational table schema that includes tables specifying each of the plurality of different product identifiers, the product family, the pricing, and the one or more dimensions.

9 . The computer-implemented method of claim 8 , each of the one or more dimensions being associated in the database with a different destination of the message, the method further comprising the message application processor updating the price applicable to the message based upon applying a first discount value that is associated in the database with a first dimension among the one or more dimensions, the first discount being different than a second discount value that is specified in a second dimension among the one or more dimensions.

10 . The computer-implemented method of claim 1 , further comprising:

each pricing being associated in a database with a different effective date;

the message application processor receiving, in response to the querying the digital data storage, based on the product identifier and the time value, a result set of two or more applicable pricings for the message and corresponding to the product identifier;

the message application processor filtering the result set based on the time value to remove one or more pricings that are associated with an effective date that is greater than the time value.

11 . The computer-implemented method of claim 10 , the database having a pricing table that is configured to store append-only records of the pricings.

12 . The computer-implemented method of claim 4 , the database having a pricing table that stores the pricings and is configured to store append-only records of the pricings, each of the pricings in the pricing table being associated with a version value, each of the pricings in the pricing table being immutable.

13 . The computer-implemented method of claim 4 , further comprising:

storing, in the database, a first product context that associates the product identifier with a second product;

storing, in the database, a second product context, that associates the product identifier with a third product;

the message application processor retrieving, based on the product identifier, data specifying the first product context;

the message application processor updating a price applicable to the message based upon applying a first discount value that is specified in first product context, the first discount being different than a second discount value that is specified in the second product context.

14 . The computer-implemented method of claim 3 , further comprising the message application processor updating a price applicable to the message by applying a first discount value that is specified in the bundle, the first discount value being different than a second discount value that is specified in a second bundle that is associated with the same product identifier and with a different organization identifier.

15 . One or more non-transitory computer-readable storage media storing one or more sequences of instructions which, when executed using one or more hardware processors of a message application processor cause the message application processor to perform:

using a message application processor, programmatically receiving a first request to determine a fee associated with sending a digital electronic message using any one of a plurality of different communication channels, the request comprising at least a product identifier and an organization identifier;

in response to the request, the message application processor executing: extracting the product identifier and the organization identifier from the message; based on the organization identifier, retrieving from digital data storage one or more configuration values that are associated with an organization corresponding to the organization identifier;

the message application processor obtaining a time value corresponding to a then-current time;

the message application processor querying the digital data storage, based on the product identifier and the time value, an applicable pricing for the message and corresponding to the product identifier and the time value;

the message application processor causing digitally creating and storing a fee charge record based on the applicable pricing.

16 . The one or more non-transitory computer-readable storage media of claim 15 , further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute: signaling a charging service to create and store a fee charge event based on the applicable pricing.

17 . The one or more non-transitory computer-readable storage media of claim 15 , further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute:

retrieving, based on the product identifier, one or more of first data specifying a bundle that is associated with the organization identifier and the product identifier and second data specifying a product context that is associated with the product identifier;

updating a price applicable to the message based upon one or more of the first data and the second data.

18 . The one or more non-transitory computer-readable storage media of claim 15 , further comprising:

a database being communicatively coupled to the message application processor;

the product identifier being one of a plurality of different product identifiers each corresponding to a different electronic digital messaging product of a product family, each of the different product identifiers being associated with at least one pricing, each pricing being associated with one or more dimensions;

the database being configured according to a relational table schema that includes tables specifying each of the plurality of different product identifiers, the product family, the pricing, and the one or more dimensions.

19 . The one or more non-transitory computer-readable storage media of claim 15 , further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute all of claim 15 in real-time for the message and each other message among thousands to millions of messages per second.

20 . The one or more non-transitory computer-readable storage media of claim 15 , further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute all of claim 15 within 5 ms to 250 ms for the message, and processing from thousands to millions of other electronic messages per second using the steps of claim 1 within 5 ms to 250 ms for each of the other electronic messages.

21 . The one or more non-transitory computer-readable storage media of claim 15 , the plurality of different communication channels comprising two or more of SMS; MMS; WHATSAPP; FACEBOOK MESSENGER; WEIXIN/WECHAT; QQ; TELEGRAM; SNAPCHAT; SLACK; SIGNAL; SKYPE; DISCORD; VIBER.

22 . The one or more non-transitory computer-readable storage media of claim 15 , further comprising:

a database being communicatively coupled to the message application processor;

the plurality of different communication channels comprising two or more of SMS; MMS; WHATSAPP; FACEBOOK MESSENGER; WEIXIN/WECHAT; QQ; TELEGRAM; SNAPCHAT; SLACK; SIGNAL; SKYPE; DISCORD; VIBER;

the product identifier being one of a plurality of different product identifiers each corresponding to a different electronic digital messaging product of a product family, each different electronic digital messaging product corresponding to a service of sending a messaging using a particular one of the plurality of different communication channels, each of the different product identifiers being associated with at least one pricing, each pricing being associated with one or more dimensions;

the database being configured according to a relational table schema that includes tables specifying each of the plurality of different product identifiers, the product family, the pricing, and the one or more dimensions.

23 . The one or more non-transitory computer-readable storage media of claim 22 , each of the one or more dimensions being associated in the database with a different destination of the message, the storage media further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute: updating the price applicable to the message based upon applying a first discount value that is associated in the database with a first dimension among the one or more dimensions, the first discount being different than a second discount value that is specified in a second dimension among the one or more dimensions.

24 . The one or more non-transitory computer-readable storage media of claim 15 , each pricing being associated in a database with a different effective date, and further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute:

receiving, in response to the querying the digital data storage, based on the product identifier and the time value, a result set of two or more applicable pricings for the message and corresponding to the product identifier;

filtering the result set based on the time value to remove one or more pricings that are associated with an effective date that is greater than the time value.

25 . The one or more non-transitory computer-readable storage media of claim 24 , the database having a pricing table that is configured to store append-only records of the pricings.

26 . The one or more non-transitory computer-readable storage media of claim 18 , the database having a pricing table that stores the pricings and is configured to store append-only records of the pricings, each of the pricings in the pricing table being associated with a version value, each of the pricings in the pricing table being immutable.

27 . The one or more non-transitory computer-readable storage media of claim 18 , further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute:

storing, in the database, a first product context that associates the product identifier with a second product;

storing, in the database, a second product context, that associates the product identifier with a third product;

the message application processor retrieving, based on the product identifier, data specifying the first product context;

the message application processor updating a price applicable to the message based upon applying a first discount value that is specified in first product context, the first discount being different than a second discount value that is specified in the second product context.

28 . The one or more non-transitory computer-readable storage media of claim 17 , further comprising sequences of instructions which when executed by the message application processor cause the message application processor to execute: updating a price applicable to the message by applying a first discount value that is specified in the bundle, the first discount value being different than a second discount value that is specified in a second bundle that is associated with the same product identifier and with a different organization identifier.

Assignments (2)
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Apr 23, 2026
From: BIRD BIDCO B.V.; MESSAGEBIRD UK LIMITED; BIRD.COM, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075472/0812 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2023
From: MAJID, DANA; VIS, ROBERT
To: MESSAGEBIRD BIDCO B.V.
Reel/Frame 065491/0340 →
References Cited (6)
US 20070049245A1 · Lipman · 2007 [cited by applicant]
US 20080273523A1 · Menditto et al. · 2008 [cited by applicant]
US 20100228652A1 · Koraichi et al. · 2010 [cited by applicant]
US 20200272631A1 · Nash et al. · 2020 [cited by applicant]
US 20210377193A1 · Violier · 2021 [cited by examiner]
US 20230262427A1 · Mumick · 2023 [cited by examiner]