Customer Self-Pay Portal / Stripe Integration

How to activate your self-pay portal, how it works, how your customers can use it to selfpay their invoices, and how much it can improve your billing workflow

AngelTrack integrates with Stripe to allow your customers to pay their invoices online, without need to mail a check or call your office.


Through AngelTrack, you can accept credit cards, ACHs, and other forms of electronic payment from all of your customers!

AngelTrack LLC Never Touches Your Money

When your customers pay using Stripe in the AngelTrack self-pay portal, the money passes from them to your Stripe account and from there to your bank. Your funds will never be in the custody of AngelTrack LLC.

You have full control over your Stripe account and can reconfigure or cancel it at any time, without obligation to AngelTrack LLC.

Stripe will hold you, not AngelTrack LLC, liable for any fraud committed by your Stripe account.

No PCI Compliance Burden

AngelTrack offers your customers a self-serve portal in which to make payments, by means of the user interface provided by Stripe. The entire secure process occurs between the customer's computer and Stripe's servers; card data never enters your office or your AngelTrack server. As such, you have no PCI compliance burden.


AngelTrack imposes no fees or transaction charges on your Stripe activity. The Stripe integration is included with your AngelTrack license.

Stripe, however, has its own fee schedule. We urge you to review it before proceeding with your AngelTrack integration.

You may be able to negotiate a lower rate

The EMS industry has a lower rate of chargebacks than usual. Depending on your annual revenue, you may be able to negotiate below-retail fees from Stripe. We encourage you to check your month-over-month revenue in AngelTrack, and then call Stripe and ask.

You can negotiate ACH payment with your contracted facilities

In your facility and affiliate contracts, you might stipulate that they will pay their invoices by paper check or (using your self-pay portal in AngelTrack) by ACH in order to avoid the credit card fees. Consult your legal counsel before stipulating anything in your contracts about credit-card fees.

You can pass the transaction fee onto the customer as a convenience charge

In the Stripe Configuration page in AngelTrack, you can choose whether to pass the Stripe transaction fees onto the customer when they pay online, as a convenience charge. When this is enabled, AngelTrack will include a 'shipping' charge, marked as "Online processing fee", equal to Stripe's credit card processing fee. This will apply even when the customer pays by EFT, because of legal difficulties in charging a fee only for credit card transactions.

Are you wanting to also accept credit cards over the phone?

AngelTrack's Stripe integration can also allow your dispatches to accept credit cards over the phone, during call intake. Likewise for your billers, if a customer wishes to make a quick credit card payment on the phone. This is called MOTO, meaning "Mail Order / Telephone Order", and AngelTrack supports it, though it has a PCI compliance burden because your office will be handling card data. To learn more, refer to the Stripe Virtual Terminal Guide.

Stripe Signup and Configuration Checklist

To use AngelTrack's Stripe integration, you must have a Stripe account. It is easy to get one:

  1. Login to your AngelTrack server with Administrator privileges.
  2. Go to Settings, and then click the "Stripe Configuration" item.
  3. Click the "Sign Up For Stripe" button and follow the prompts.

AngelTrack will request for you a "Standard" Stripe account, which has more features than anyone could want. Stripe may refer to it as a "Connect" account because it is connected to AngelTrack; however, it is your account, and so you control every aspect of it, including the acceptable forms of payment.

It may take several trips back to the Stripe onboarding page to complete all the verification steps and provide the necessary documentation. Each time you submit documentation, Stripe will process it and a few minutes later may ask for more. Keep going back until AngelTrack says the account is active and ready to go.

Next, log in to your Stripe account and finish the customization:

  1. Add your bank account(s).
  2. Configure a payout schedule to automatically transfer all funds from your Stripe account to your bank.
  3. Configure the branding settings so that your self-pay customers will see your trade dress rather than AngelTrack's when they go through checkout.


Your customers can use the self-pay portal to pay invoices that meet all of the following criteria:

  • The invoice must be marked either Open or Paid. There is a configuration setting to allow customers to self-pay invoices which are marked Unpaid; see below.
  • There must be a balance due for the invoice's items, plus the customer's ledger balance where not already included on the customer's other open invoices. In other words, the customer is not allowed to make a payment when the net balance due is zero or negative.

The self-pay portal shows the customer the balance currently due for the items in the invoice, regardless of the amounts originally printed on the invoice, in case there have already been adjustments or partial payments made against it.

Other limitations:

  • Your AngelTrack server can be linked to only one Stripe account at a time.
  • If you have operations in two different states, you cannot share one Stripe account across multiple AngelTrack servers. Each of your AngelTrack servers must have their own Stripe account.
  • You cannot use any pre-existing Stripe account, because the Stripe account used for AngelTrack integration must -- inside Stripe's systems -- be created by AngelTrack on your behalf, so that AngelTrack can thereafter make Stripe API calls on your behalf.
  • You cannot disable credit cards as a payment option; that is, you cannot offer an ACH-only payment portal. This is because the credit card companies require that Stripe always offers credit cards as a payment option, even if you are hoping for all your customers to use ACH instead. Nor can you charge a different price in Stripe when the customer pays by ACH. Therefore, before you offer the self-pay portal to your customers, you will have to consider whether you are willing to accept the 3% hit from credit-card payments.

Stripe Features Connected

AngelTrack is connected to the following Stripe features:

  • Checkout
  • Instant payment (e.g. credit card)
  • Delayed payment (e.g. ACH)
  • Disputes
  • Refunds
  • Account modified / activated / deactivated

Stripe will notify AngelTrack whenever the aforementioned events occur so that AngelTrack can update its records.

The following list of Stripe features are not hooked into AngelTrack. You may use these features however you see fit, in your Stripe dashboard, but AngelTrack is not connected to them and so will not be able to participate:

  • Customers
  • Products
  • Invoices
  • Subscriptions
  • Payouts

Payment Methods

You can customize the payment methods that Stripe will accept from your customers.

When AngelTrack creates your Stripe account, it will enable these payment methods by default:

  • Credit cards (mandatory)
  • Bank ACH
  • Apple Pay
  • Google Pay

We encourage you to also consider the Afterpay / Clearpay option. It is a credit/installment plan that permits your customer to pay their invoice in four installments, yet you get the entire amount up-front.


When one of your customers makes a payment in your self-pay portal, AngelTrack will apply the funds to the relevant invoice, exactly as though a biller had done so in the usual way and with the default options.

Thus, Stripe payments are recorded as payment events, just like all other transactions, and so they integrate perfectly into AngelTrack's post-process workflow.

For all such transactions, AngelTrack will display "[AngelTrack]" as the creator/bookkeeper. Thus, the Billing Activity Visualizer report will include them only when it is not filtering by biller.

Reviewing Stripe transactions in AngelTrack

All of your Stripe transactions appear in the Check Register. From there, you can follow each transaction to all the payment events it created and to all the dispatches it paid.

Each record's transaction type will be set to "Stripe", and the check/EFT number will be a Stripe transaction ID, which looks like this:


Even though some of those payments might be credit-card transactions or ACHs, AngelTrack always sets their type to "Stripe" to make it easier to reconcile the check register against your bank account since your Stripe transactions will not appear individually on your bank statement. Instead, they will be gathered together into a single ACH transfer when you emptied all the funds from your Stripe account.

If you don't want to dive-down via the Check Register, and would rather see a flat report of all payment events created by all Stripe transactions , you can do either of the following:

  • Use the Payment Event Finder to pull all payments meeting your filter criteria (date range, non-zero monetary amount), export the data to a spreadsheet, find the column named "AssociatedTransactionTypeDescription", and filter out all rows that do not contain "Stripe" in that column.
  • Or, use Report Builder's "PaymentEvents" datasets, and filter using the "Transaction Type" column = "Stripe".

Reviewing Stripe transactions online

Each Stripe transaction in your Check Register offers a link to the matching records in your Stripe dashboard.

You can find your Stripe dashboard here: 

There is also a link to it on your Stripe Configuration page in AngelTrack, under Settings.

Role-Based Access Control

The following security roles in AngelTrack have access to the Stripe Configuration page:

  • Administrator
  • Captain
  • Biller

From that page, they can reconfigure, disable, or re-enable AngelTrack's self-pay portal. However, only an Administrator can perform the initial Stripe account creation and linkage to AngelTrack.

Invoice Self-Pay IDs

When AngelTrack's Stripe integration is enabled, every invoice will include instructions to your customer on how to pay online. The instructions consist of:

  1. Your self-pay URL, which is always in this form:
  2. The invoice's self-pay ID, which is a unique number -- no more than 10 digits long -- that the customer can use to retrieve the invoice and go through checkout. An invoice's self-pay ID never changes.

Here is what your customer will see on their invoice's cover sheet:


No PHI is exposed in the self-pay portal

You don't need to treat self-pay IDs as HIPAA-encumbered data because no PHI data is exposed in AngelTrack's self-pay portal nor in the accompanying Stripe checkout system.

BillFlash Integration

If you export your invoices to BillFlash so that BillFlash can print and mail them out on your behalf, AngelTrack will include the self-pay instructions within the data sent over. The instructions will appear in BillFlash's mailouts, alongside the text that AngelTrack includes from the relevant document template.

AngelTrack does not further integrate with BillFlash, so you cannot use BillFlash as a self-pay portal the way you can with Stripe.

Using the Self-Pay Portal in a Reinvoicing Cycle

If you use a reinvoicing cycle, the self-pay portal integrates perfectly with it.

Your billers can reinvoice every month without any need to monitor Stripe payments because AngelTrack performs all necessary workflow moves automatically, and so receivables will come up for reinvoicing whenever necessary.

Allowing customers to pay stale invoices

In your Stripe Configuration page under Settings, find this tickbox: ☑ Allow customers to make payments against invoices that are already marked Unpaid 

When the box is ticked, then a customer who has an old invoice -- one already marked Unpaid and reinvoiced by your billing office -- can still self-pay it. In this situation, AngelTrack will apply the payment in the same manner as though a biller did so, paying off the receivables in the old invoice and therefore automatically closing any newer invoices that carry the same receivables.

This option is off by default; you must turn it on yourself if you want to allow it.

Transferring Funds to Your Bank

Incoming payments will reside in your Stripe account until you choose to empty it out by transferring the money to your bank. You can perform the transfer manually at any time, but it is easier to set it automatically.

To automate your Stripe transfers, perform these steps:

  1. Login to your Stripe account (the one AngelTrack created for you).
  2. Find and click the settings icon in the top-right corner of the page.
  3. Find and click the "Bank accounts and scheduling" item.
  4. Add your bank account(s).
  5. Configure a payout schedule to regularly empty your Stripe account into your bank.

That's all there is to it!

AngelTrack LLC is not a party to your contract with Stripe. Your funds will never, at any point, be in the custody of AngelTrack LLC -- not even for a millisecond. Nor does AngelTrack LLC earn any revenue from your Stripe activity.

Visiting Your Own Self-Pay Portal

You can visit your own self-pay portal whenever you wish if you would like to see what your customers will see.

Click any open invoice to open the Invoice Edit page, and then click the "Self-pay portal…" link on the right-hand side.

If you've configured AngelTrack to display your company logo on your login page or on your invoices, then it will also appear in your self-pay portal, the same way it appears in your Customer Portal.

Disputes / Chargebacks

If a customer later disputes a payment they made, Stripe will notify you of the dispute*. You must handle it there.

If you eventually lose the dispute, Stripe will automatically send the chargeback data to your AngelTrack server. AngelTrack will process it as follows:

  1. The chargeback amount will appear as a new record in the Check Register:
    • The monetary amount will be a negative number, reflecting the amount lost to the dispute.
    • The comments field will say "Lost dispute" and mention the Stripe payment-intent ID for the original payment.
    • The check/EFT number field will contain the Stripe charge ID for the chargeback transaction, which is an ID number that looks like this: txn_1KstURQSqpmZsRkyqaBTkqsU
    • The "needs review" flag will be raised.
  2. Some or all of the payment events from the original Stripe payment will be reversed by means of balancing payment events, each of which will include the comment "Lost dispute".
  3. All affected receivables (i.e. all affected dispatches) will go straight to  Finished as write-offs, on the assumption that the lost dispute means that no monies can be collected for them. You can undo this action and move these trips back to the billing workflow when you review the payment events created by the flagged record in the check register.

If only a part of the original payment is disputed and reversed, AngelTrack might not be able to tell which trips in the invoice were disputed versus which were allowed, and so it will choose on its own which of the attached trips are write-offs.

Dispute fees

If Stripe charges you a dispute fee, AngelTrack will include it in the monetary amount recorded in the check-register entry for the dispute.

The dispute fee will be stored in a child PLB record with reason-code "01", meaning "Card interchange fee amount". This PLB record is not a true PLB, because it didn't come from an insurance carrier, but it is nevertheless a clear and consistent way of storing dispute fees in the check register.

*Configuring your Stripe notification settings

By default, your Stripe account will be configured to send you an email in the event of a dispute, as well as other significant events. You can modify your email preferences by visiting your Stripe dashboard, clicking on your user icon at the top-right corner of the page, and selecting the "Profile" edit link.


Within your Stripe dashboard, you may initiate a partial or full refund of customer payment. When the refund transaction completes successfully, Stripe will automatically notify AngelTrack.

When AngelTrack receives the notification, it will process it the same way that it processes a dispute (see just above), with one exception: Rather than marking all affected dispatches as finished / writeoff, the automatic workflow will re-decide what to do with them, same as if you'd recorded a reversal payment event and then told AngelTrack to automatically decide what to do next. Usually, they will go back for reinvoicing.

Thereafter, you can find the refund's record in AngelTrack's Check Register, and from there you can review the affected trips if you intend to change their prices or billing arrangements.

AngelTrack Sandboxes

If you have an AngelTrack sandbox, you can enable its Stripe interface in order to try it out. AngelTrack sandboxes automatically use Stripe in "test mode", where all transactions are fictitious, so you can create a test-mode Stripe account and do whatever you like with it.

Refer to the Stripe testing documentation to see how to make a simulated credit card or ACH payment.