Create Payment
POST/payments/secure
Creates a payment charged directly to a payer's saved, verified bank account or card. Use this to accept a payment that is not tied to a specific invoice — for example, when a merchant uses Paystand purely as a payment processor rather than for full receivables/AR tracking.
Requires bankId (see Add Bank Account and Verify Bank Drops) or cardId, plus payerId, amount, and currency.
Optional receivableId: pass an existing Receivable id to apply the payment to that invoice instead of creating an unapplied payment.
Applying the Fees & Incentives plan (payer fee or discount): this endpoint does not consult the merchant's Fees & Incentives plan — it charges exactly amount. To apply it, quote first with Split Fees, then send the quoted payerTotal as amount and a feeSplit carrying that quote's subtotal and feeSplitType. Paystand re-derives the rate from the plan, so do not send customRate or customFlat. Sending the payerTotal without feeSplit charges it all as principal, with no fee or discount.
Split Fees quotes every payment rail at once, because what a plan charges differs by payment method. Take payerTotal and feeSplitType from the rail you are actually charging: cardPayments for a card, networkBankPayments for a verified bank account (a verified bank's rail carries discounts only, never a payer fee). A quote from another rail is rejected with a generic 400 (apiError).
{
"cardId": "<cardId>",
"payerId": "<payer.id>",
"amount": "103.50",
"currency": "USD",
"feeSplit": { "subtotal": "100.00", "feeSplitType": "recoup_custom_of_subtotal" }
}
⚠️ Not equivalent to an AR Advance. Payments created here without a
receivableIdare recorded as generic, unapplied payments. They are not linked to any receivable ledger entry, ERP sync event, or AR-Advance plan entitlement. If your Paystand plan tracks receivables (AR) and you need advance/prepayment functionality tied to that ledger, talk to your Paystand contact about AR Advance rather than relying on this endpoint unapplied.
⚠️ Not supported for Sage Intacct-connected merchants without a
receivableId— the request returns a validation error. Sage merchants must route payments through a receivable (Create Receivable plus a linked payment) so cash applies correctly in Sage.
Request
Responses
- 200
- 400
- 401
Payment created
Validation error, or direct payments disabled for Sage Intacct merchants without a receivableId
Unauthorized