HubSpot Payments is a full workflow object type. You can enroll payments, trigger workflows when payments are created, and build reports around them. But there's one thing you can't do: create a payment record from a workflow.

The native "Create record" action supports contacts, companies, deals, orders, tickets, leads, listings, courses, appointments, services, projects, and custom objects. Payments - conspicuously - are not on that list.

This creates a gap for any team that needs to track revenue received outside Commerce Hub. If a deal closes and the payment arrives via wire transfer, invoice, or an external billing system, someone has to manually create the payment record. That doesn't scale.

The Problem: No Native Way to Create Payments Automatically

HubSpot's Commerce Hub treats payments as first-class objects. They have their own properties, associations, and reporting. But the platform gives you no way to programmatically create them inside a workflow.

That means you can't:

  • Auto-create a payment when a deal closes - even though the amount, currency, and method are all sitting on the deal record
  • Log payments from external systems - webhook data from Stripe, QuickBooks, or your own billing API has nowhere to land automatically
  • Track offline payments - wire transfers, checks, and bank transfers that happen outside any payment processor
  • Reconcile subscription renewals - recurring revenue that should generate periodic payment records

The data exists. The workflow triggers exist. The one missing piece is the action to create the record.

Create Payment Workflow Action

0CodeTools for HubSpot adds a Create Payment workflow action that fills this gap. It creates a Commerce Payment record in HubSpot with the amount, currency, status, and payment method you specify - using values from the enrolled record or static defaults.

For a product overview of every Commerce Hub action (Create Payment, CSV Import, Quotes, Line Items, Taxes, and Stripe activation), see 0CodeTools for Commerce Hub.

The action works in any workflow type: deal-based, invoice-based, contact-based, or custom object-based. Anywhere you have the payment data available, you can create the record.

Use Cases

  • Deal closed-won - automatically create a payment record when a deal moves to Closed Won, pulling the amount and currency from the deal
  • Invoice paid - create a payment record when an invoice is marked as paid, linking the payment to the invoice's revenue
  • External webhook - receive payment data from Stripe, QuickBooks, or your own API via the 0CodeTools API Webhook Connector, then create the payment record in HubSpot
  • Subscription renewal - create periodic payment records for recurring revenue tracked outside HubSpot Payments

Setting Up the Workflow

Example 1: Deal Closed-Won Creates a Payment

When a deal moves to Closed Won, create a payment record automatically. Click the action below to see the full configuration:

Trigger enrollment for deals
When this happens
Group 1
Deal stage is Closed Won any number of times anytime
+
1. Create Payment

Create a Succeeded payment of Amount (Enrolled deal) USD

Click to see configuration
+
End

This workflow fires once per deal. The payment amount comes directly from the deal's Amount property, and the customer email is pulled from the associated contact. The status is set to "Succeeded" because the deal is already closed.

Example 2: Invoice Triggers a Payment Record

For teams that track revenue through invoices, create a payment record when an invoice is finalized:

Trigger enrollment for invoices
When this happens
Group 1
Invoice status is Paid any number of times anytime
+
1. Create Payment

Create a Processing payment of Amount billed (Enrolled invoice) USD

Click to see configuration
+
End

Field Reference

The Create Payment action has six fields. Four are required:

FieldRequiredTypeDescription
AmountYesNumber / tokenPayment amount. Use a token to pull from the enrolled record (e.g., deal amount, invoice total).
Currency CodeYesTextThree-letter ISO currency code (USD, EUR, GBP, etc.).
Customer emailNoText / tokenEmail address associated with the payment. Useful for linking to contact records.
StatusYesDropdownProcessing, Succeeded, Failed, Partially refunded, Refunded, Processing refund, or Disputed variants.
Payment methodYesDropdownCheck, Wire transfer, SEPA (EU bank transfer), BACS (UK bank transfer), PADS (CA pre-authorized debit), or Other.
CommentNoTextFree-text note attached to the payment record.

Status options cover the full payment lifecycle: Processing, Succeeded, Failed, Partially refunded, Refunded, Processing refund, Disputed - won, Disputed - lost, Disputed - action required, and Disputed - awaiting decision.

Payment method options support international payment types: Check, Wire transfer, SEPA (EU bank transfer), BACS (UK bank transfer), PADS (CA pre-authorized debit), and Other.

How to Import Payments in HubSpot

For historical data - payments from a legacy CRM, accounting software, or external billing system - creating records one by one through workflows doesn't make sense. You need a bulk import.

The 0CodeTools CSV Import tool lets you upload a CSV file and map its columns to HubSpot payment properties, then import all records at once.

0CodeTools CSV Import tool showing column mapping for HubSpot payment records

When to Use CSV Import

  • Migrating from another CRM or billing platform - bring over historical payment records so your HubSpot reporting reflects full revenue history
  • Backfilling revenue data - if you adopted HubSpot Payments recently but have years of prior transaction data in Stripe, QuickBooks, or spreadsheets
  • Bulk reconciliation - sync a batch of payments from an external accounting or ERP system
  • One-time data cleanup - import corrected or enriched payment data after an audit

How It Works

  1. Export your payment data as a CSV file from your source system
  2. Go to 0CodeTools CSV Import and select Payments as the object type
  3. Upload your CSV file - the tool shows you all columns with sample data
  4. Map each CSV column to the corresponding HubSpot payment property (Payment date, Gross amount, etc.)
  5. Click Continue to import - records are created in your HubSpot portal

The mapping step lets you skip columns you don't need and match your CSV's column names to HubSpot's property names, regardless of what your source system calls them.

Things to Keep in Mind

  • Tracking, not processing. The Create Payment action creates a payment record in HubSpot for tracking and reporting. It does not process an actual charge through Stripe, HubSpot Payments, or any payment processor.
  • Associations. The payment record is created as a standalone object. If you need it associated with the enrolled deal, contact, or company, add a Find and Associate or Copy Associations action after the Create Payment step (both available in 0CodeTools).
  • One credit per execution. Each Create Payment action execution uses one workflow action credit. The free plan includes 100 actions per month.
  • Currency codes. Use standard three-letter ISO 4217 codes (USD, EUR, GBP, etc.). The Currency Code field is free-text, so double-check your values.

Getting Started

  1. Install 0CodeTools for HubSpot and connect your portal.
  2. Create a deal-based or invoice-based workflow in HubSpot.
  3. Add the Create Payment action from the 0CodeTools section.
  4. Configure the fields - use tokens to pull values from the enrolled record.
  5. Test with a single record before enabling for all deals or invoices.

For bulk imports, go to toolbox.resonatehq.com/hubspot-tools/import and upload your CSV.

For the full Commerce Hub automation feature list, visit 0CodeTools for Commerce Hub.

Related HubSpot workflow guides

The Create Payment action sits inside a broader Commerce Hub automation pattern. These companion guides extend what you can build:

Frequently asked questions

Can HubSpot workflows create payment records natively?+
No. HubSpot's native Create record workflow action supports contacts, companies, deals, orders, tickets, leads, listings, courses, appointments, services, projects, and custom objects — but not payments. The 0CodeTools Create Payment action fills this gap and creates Commerce Payment records directly inside HubSpot workflows.
How do I auto-create a payment when a deal closes in HubSpot?+
Build a deal-based workflow that triggers on Deal stage = Closed Won. Add the 0CodeTools Create Payment action and use tokens to pull the amount from the deal's Amount property and the customer email from the associated contact. Set the status to Succeeded and pick the appropriate payment method (Wire transfer, Check, etc.). The full recipe is in the post above.
Does the Create Payment action process actual charges?+
No. The action creates a payment record in HubSpot for tracking and reporting purposes. It does not process a charge through Stripe, HubSpot Payments, or any payment processor. Use it to log payments that have already been received via wire transfer, check, invoice payment, or external billing systems.
How do I bulk-import historical payment data into HubSpot?+
Use the 0CodeTools CSV Import tool. Export your payment data from your source system (Stripe, QuickBooks, legacy CRM, spreadsheet) as a CSV. Upload to toolbox.resonatehq.com/hubspot-tools/import, select Payments as the object type, map your CSV columns to HubSpot payment properties, and run the import.
What payment methods does the Create Payment action support?+
Check, Wire transfer, SEPA (EU bank transfer), BACS (UK bank transfer), PADS (CA pre-authorized debit), and Other. The action covers international offline payment types — for actual processor-charged payments, use HubSpot Payments or Stripe directly.
How do I associate a created payment with a deal or contact?+
The Create Payment action creates a standalone payment record. To attach it to a deal, contact, or company, add a Find and Associate or Copy Associations action immediately after the Create Payment step. Both are 0CodeTools actions and are covered in the orders/invoices associations guide.
What's the difference between a HubSpot order, invoice, and payment?+
An order represents a commitment to purchase (typically tied to one or more line items). An invoice is a request for payment against an order or deal. A payment is the actual record of money received. All three are first-class Commerce Hub objects with their own properties and associations. Workflows can natively create orders and invoices but require 0CodeTools to create payments.
Can I create payment records from external webhook data?+
Yes. Use the 0CodeTools API Webhook Connector action to receive payment data from Stripe, QuickBooks, or your own billing API, then add a Create Payment action that uses the webhook response values. This pattern handles subscription renewals, third-party processor reconciliation, and any external system that needs to log payments to HubSpot.