IP Library Granted Patent US 11,521,249
Granted Patent B2
US 11,521,249 · App. 16/795,890 · Granted Dec 6, 2022

Auto-reconciliation

Inventors: Tara Seshan (San Francisco, CA); Clinton Carjoel Blackburn (Oakland, CA); Victoria Martinez (San Francisco, CA)
Assignee: Stripe, Inc.
G06Q30/04G06N5/04G06N20/00G06Q10/10G06Q20/042G06Q20/385G06Q40/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,521,249
App. No.
16/795,890
Granted
Dec 6, 2022
Kind
B2
Abstract

In an example embodiment, a payment processor automatically generates a virtual account number that can be used by customers to perform push payments, such as ACH, wire transfer, and direct deposits. This virtual account number may be surfaced to customers via invoices sent by service or product providers. The payment processor is then able to automatically match the payment sent to the virtual account number and the amount owed on the invoice.

Claims (55)

1. A method, for automatically reconciling information included with an electronic payment with an invoice data structure, the method comprising:

distributing one or more script libraries to one or more merchant servers, the one or more script libraries configured to detect an indication that an invoice has been generated for a customer for a first time and to, in response to the detection of the indication, automatically generate a virtual bank account number (VBAN), wherein the VBAN uniquely corresponds to both the customer and a merchant bank of a merchant operating the merchant server, and wherein the VBAN generation is configured to generate a new VBAN and associate the new VBAN with the customer and the merchant bank of the merchant and to automatically insert the VBAN in the invoice and subsequent invoices for the customer;

receiving, from the one or more script libraries, a first mapping between one or more VBANs and the merchant;

creating, from the first mapping between the one or more VBANs and the merchant, a second mapping between a plurality of merchants and corresponding VBANs generated for the merchant;

passing the created second mapping to a merchant bank server;

receiving, from the merchant bank server, a notification of an electronic payment received corresponding to a particular VBAN;

accessing the second mapping to identify the merchant corresponding to the particular VBAN; and

sending the notification of the electronic payment to a script library corresponding to the identified merchant, causing the script library to automatically reconcile the electronic payment with a particular invoice.

2. The method of claim 1 , wherein the automatic reconciliation comprises:

determining whether a total value of the electronic payment matches an invoice associated with a customer associated with the particular VBAN; and

generating an exception if the total value of the electronic payment does not match any invoice associated with a customer associated with the particular VBAN.

3. The method of claim 2 , wherein the automatic reconciliation further comprises:

reconciling the electronic payment with an oldest matching invoice, if the total value of the electronic payment matches at least one invoice associated with a customer associated with the particular VBAN.

4. The method of claim 2 , wherein the automatic reconciliation further comprises:

handling the exception by determining if the electronic payment constitutes an overpayment, underpayment, botched installment payment, or check-specific payment.

5. The method of claim 4 , wherein if it is determined that the electronic payment constitutes an underpayment, automatically forgiving a difference between the total value of the electronic payment and a total amount owed on a matching invoice if the difference is within a forgiveness threshold.

6. The method of claim 5 , wherein the forgiveness threshold is fixed based on the merchant.

7. The method of claim 5 , wherein the forgiveness threshold is dynamically determined.

8. The method of claim 7 , wherein the forgiveness threshold is dynamically determined based on output of a machine learned model trained by a machine learning algorithm based on customer information, past customer payment information, and merchant information.

9. The method of claim 1 , further comprising recycling one or more VBANs by disassociating the recycled one or more VBANs from customers and merchants.

10. The method of claim 9 , wherein the one or more VBANs recycled include VBANs originally assigned for single use.

11. The method of claim 9 , wherein the one or more VBANs recycled include VBANs never used for an electronic payment.

12. A system for handling a failed payment attempt in an electronic payment processing system, the system comprising:

a network;

one or more hardware processors; and

a memory storing instructions that, when executed by at least one processor among the processors, cause the system to perform operations comprising, at least:

distributing one or more script libraries to one or more merchant servers, the one or more script libraries configured to detect an indication that an invoice has been generated for a customer for a first time and to, in response to the detection of the indication, automatically generate a virtual bank account number (VBAN), wherein the VBAN uniquely corresponds to both the customer and a merchant bank of a merchant operating the merchant server, and wherein the VBAN generation is configured to generate a new VBAN and associate the new VBAN with the customer and the merchant bank of the merchant and to automatically insert the VBAN in the invoice and subsequent invoices for the customer;

receiving, from the one or more script libraries, a first mapping between one or more VBANs and the merchant;

creating, from the first mapping between the one or more VBANs and the merchant, a second mapping between a plurality of merchants and corresponding VBANs generated for the merchant;

passing the created second mapping to a merchant bank server;

receiving, from the merchant bank server, a notification of an electronic payment received corresponding to a particular VBAN;

accessing the second mapping to identify the merchant corresponding to the particular VBAN; and

sending the notification of the electronic payment to a script library corresponding to the identified merchant, causing the script library to automatically reconcile the electronic payment with a particular invoice.

13. The system of claim 12 , wherein the automatic reconciliation comprises:

determining whether a total value of the electronic payment matches an invoice associated with a customer associated with the particular VBAN; and

generating an exception if the total value of the electronic payment does not match any invoice associated with a customer associated with the particular VBAN.

14. The system of claim 13 , wherein the automatic reconciliation further comprises:

reconciling the electronic payment with an oldest matching invoice, if the total value of the electronic payment matches at least one invoice associated with a customer associated with the particular VBAN.

15. The system of claim 13 , wherein the automatic reconciliation further comprises:

handling the exception by determining if the electronic payment constitutes an overpayment, underpayment, botched installment payment, or check-specific payment.

16. A non-transitory machine-readable medium comprising instructions which, when read by a machine, cause the machine to perform operations for handling a failed payment attempt in an electronic payment processing system, the operations comprising:

distributing one or more script libraries to one or more merchant servers, the one or more script libraries configured to detect an indication that an invoice has been generated for a customer for a first time and to, in response to the detection of the indication, automatically generate a virtual bank account number (VBAN), wherein the VBAN uniquely corresponds to both the customer and a merchant bank of a merchant operating the merchant server, and wherein the VBAN generation is configured to generate a new VBAN and associate the new VBAN with the customer and the merchant bank of the merchant and to automatically insert the VBAN in the invoice and subsequent invoices for the customer;

receiving, from the one or more script libraries, a first mapping between one or more VBANs and the merchant;

creating, from the first mapping between the one or more VBANs and the merchant, a second mapping between a plurality of merchants and corresponding VBANs generated for the merchant;

passing the created second mapping to a merchant bank server;

receiving, from the merchant bank server, a notification of an electronic payment received corresponding to a particular VBAN;

accessing the second mapping to identify the merchant corresponding to the particular VBAN; and

sending the notification of the electronic payment to a script library corresponding to the identified merchant, causing the script library to automatically reconcile the electronic payment with a particular invoice.

17. The non-transitory machine-readable medium of claim 16 , wherein the automatic reconciliation comprises:

determining whether a total value of the electronic payment matches an invoice associated with a customer associated with the particular VBAN; and

generating an exception if the total value of the electronic payment does not match any invoice associated with a customer associated with the particular VBAN.

18. The non-transitory machine-readable medium of claim 17 , wherein the automatic reconciliation further comprises:

handling the exception by determining if the electronic payment constitutes an overpayment, underpayment, botched installment payment, or check-specific payment.

19. The non-transitory machine-readable medium of claim 18 , wherein if it is determined that the electronic payment constitutes an underpayment, automatically forgiving a difference between the total value of the electronic payment and a total amount owed on a matching invoice if the difference is within a forgiveness threshold.

20. The non-transitory machine-readable medium of claim 19 , wherein the forgiveness threshold is dynamically determined based on output of a machine learned model trained by a machine learning algorithm based on customer information, past customer payment information, and merchant information.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 074264/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: SESHAN, TARA; BLACKBURN, CLINTON CARJOEL; MARTINEZ, VICTORIA
To: STRIPE, INC.
Reel/Frame 051871/0926 →