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.

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.