Online payments
Card and bank payments through Stripe.
Paths are relative to https://evenbooks.org/api/v1. How keys, errors, paging and versions work is in the guide; the whole reference is also an OpenAPI 3.1 document.
Administrator key marks endpoints that need a key with the admin role, Write access those a read-only key can’t call, and Idempotent those that accept an idempotency key.
List online payments
/processor/chargesCard and ACH payments taken through Stripe, newest first, at most limit (default 50). Filter by invoice or status.
Parameters
invoiceIdstring · Uuidquerystatusstring · ProcessorChargeStatusqueryOne of:
pendingprocessingsucceededfailedcanceledlimitintegerquery
Response 200
array of ProcessorChargeDto
Errors 400 · 401 · 403 · 404 · 409 · 429
Get an online payment
/processor/charges/{id}With its refunds and disputes, oldest first.
Parameters
idstring (uuid)path · required
Response 200
ProcessorChargeDetailDto
idstringproviderstring · ProcessorProviderOne of:
stripeproviderPaymentIntentIdstring or nullproviderChargeIdstring or nullinvoiceIdstring or nullinvoiceNumberstring or nullcontactIdstring or nullcontactNamestring or nulloriginstringOne of:
evenbooksexternalmethodstringOne of:
cardachunknownstatusstring · ProcessorChargeStatusOne of:
pendingprocessingsucceededfailedcanceledcurrencystringamountstring · DecimalStringprocessorFeestring · DecimalStringplatformFeestring · DecimalStringplatformFeeRefundedstring · DecimalStringamountRefundedstring · DecimalStringamountDisputedstring · DecimalStringrefundableAmountstring · DecimalStringpaymentIdstring or nullfeeJournalEntryIdstring or nullpayerEmailstring or nulldescriptionstring or nullfailureMessagestring or nullsucceededAtstring or nullcreatedAtstringversionintegerrefundsarray of ProcessorRefundDtoRefunds, disputes and dispute reversals against this payment, oldest first.
Errors 400 · 401 · 403 · 404 · 409 · 429
Refund an online payment
/processor/charges/{id}/refundAdministrators only. Asks Stripe to refund amount (an outbound call; real money leaves the connected account) and records the refund in the books; Evenbooks’ fee is refunded in proportion. Only a settled payment, up to refundableAmount (400 over_allocation). The returned refund has status: failed when Stripe declines it; 502 external_error when Stripe rejects the request. Needs version of the payment from the last read (409 version_conflict otherwise).
Parameters
idstring (uuid)path · required
Request body
RefundProcessorChargeInput
versionintegerrequiredamountstring · PositiveDecimalStringrequiredreasonstringrequiredidempotencyKeystring · IdempotencyKey
Response 200
ProcessorRefundDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Get the Stripe connection
/processor/connectionThe connected Stripe account, its online payment settings and the Stripe balance recorded in the books. Null when Stripe is not connected or was disconnected.
Response 200
GetProcessorConnectionResponse
idstringproviderstring · ProcessorProviderOne of:
stripeproviderAccountIdstringstatusstring · ProcessorConnectionStatusOne of:
pendingactiverestricteddisconnectedchargesEnabledbooleanpayoutsEnabledbooleandetailsSubmittedbooleandisplayNamestring or nulloriginstringOne of:
createdlinkedlinkedBalancestring · DecimalString or nulllinkedAtstring or nullclearingAccountIdstringclearingAccountNamestringfeeAccountIdstringfeeAccountNamestringpayoutBankAccountIdstring or nullpayoutBankAccountNamestring or nullallowCardbooleanallowAchbooleanallowPartialbooleanminimumPaymentstring · DecimalStringautoPostPayoutsbooleanlastEventAtstring or nulllastErrorstring or nulldashboardUrlstringplatformFeePlatformFeeDtoclearingBalancestring · DecimalStringversionintegercreatedAtstring
Errors 400 · 401 · 403 · 404 · 409 · 429
Change online payment settings
/processor/connectionAdministrators only. Which methods customers may use (card, ACH or both, at least one), partial payments and their minimum, the bank account payouts land in, and whether payouts post automatically. Omitted fields stay as they are. Needs version from the last read (409 version_conflict otherwise).
Request body
UpdateProcessorConnectionInput
versionintegerrequiredpayoutBankAccountIdstring · Uuid or nullallowCardbooleanallowAchbooleanallowPartialbooleanminimumPaymentstring · NonNegativeDecimalStringautoPostPayoutsboolean
Response 200
ProcessorConnectionDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Disconnect Stripe
/processor/connection/disconnectAdministrators only. Customers can no longer pay invoices online. The Stripe account stays the company’s, and Stripe events for it keep posting so the books stay complete. Needs version from the last read (409 version_conflict otherwise). Returns the connection as it was disconnected; GET /processor/connection returns null afterwards.
Request body
PostProcessorConnectionDisconnectBody
versionintegerrequired
Response 200
ProcessorConnectionDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Refresh the Stripe connection
/processor/connection/refreshAdministrators only. Reads the account’s status and whether it can take charges and receive payouts from Stripe (an outbound call), for example after onboarding.
Response 200
ProcessorConnectionDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
List Stripe payouts
/processor/payoutsThe 50 most recent payouts from Stripe to the bank, latest arrival date first, with the journal entry each posted.
Response 200
array of ProcessorPayoutDto
Errors 400 · 401 · 403 · 404 · 409 · 429
Schemas
The types these endpoints take or return, by name. Type names above link here.
DecimalString
decimal string
string
IdempotencyKey
string
NonNegativeDecimalString
string
PlainDateString
string
PlatformFeeDto
planstringOne of:
freepaidcardTotalPercentstringachTotalPercentstring
PositiveDecimalString
string
ProcessorChargeDto
idstringproviderstring · ProcessorProviderOne of:
stripeproviderPaymentIntentIdstring or nullproviderChargeIdstring or nullinvoiceIdstring or nullinvoiceNumberstring or nullcontactIdstring or nullcontactNamestring or nulloriginstringOne of:
evenbooksexternalmethodstringOne of:
cardachunknownstatusstring · ProcessorChargeStatusOne of:
pendingprocessingsucceededfailedcanceledcurrencystringamountstring · DecimalStringprocessorFeestring · DecimalStringplatformFeestring · DecimalStringplatformFeeRefundedstring · DecimalStringamountRefundedstring · DecimalStringamountDisputedstring · DecimalStringrefundableAmountstring · DecimalStringpaymentIdstring or nullfeeJournalEntryIdstring or nullpayerEmailstring or nulldescriptionstring or nullfailureMessagestring or nullsucceededAtstring or nullcreatedAtstringversioninteger
ProcessorChargeStatus
string
One of: pending processing succeeded failed canceled
ProcessorConnectionDto
idstringproviderstring · ProcessorProviderOne of:
stripeproviderAccountIdstringstatusstring · ProcessorConnectionStatusOne of:
pendingactiverestricteddisconnectedchargesEnabledbooleanpayoutsEnabledbooleandetailsSubmittedbooleandisplayNamestring or nulloriginstringOne of:
createdlinkedlinkedBalancestring · DecimalString or nulllinkedAtstring or nullclearingAccountIdstringclearingAccountNamestringfeeAccountIdstringfeeAccountNamestringpayoutBankAccountIdstring or nullpayoutBankAccountNamestring or nullallowCardbooleanallowAchbooleanallowPartialbooleanminimumPaymentstring · DecimalStringautoPostPayoutsbooleanlastEventAtstring or nulllastErrorstring or nulldashboardUrlstringplatformFeePlatformFeeDtoclearingBalancestring · DecimalStringversionintegercreatedAtstring
ProcessorConnectionStatus
string
One of: pending active restricted disconnected
ProcessorPayoutDto
idstringproviderPayoutIdstringstatusstringOne of:
pendingin_transitpaidfailedcanceledcurrencystringamountstring · DecimalStringarrivalDatestring · PlainDateStringdescriptionstring or nullbankAccountIdstring or nullbankAccountNamestring or nulljournalEntryIdstring or nullreversalEntryIdstring or nullfailureMessagestring or nullcreatedAtstring
ProcessorProvider
string
One of: stripe
ProcessorRefundDto
idstringchargeIdstringproviderRefundIdstring or nullproviderDisputeIdstring or nullkindstringOne of:
refunddisputedispute_reversaloriginstringOne of:
evenbooksexternalstatusstringOne of:
pendingsucceededfailedcanceledamountstring · DecimalStringfeeAmountstring · DecimalStringplatformFeeRefundedstring · DecimalStringreasonstring or nulldisputeStatusstring or nullrefundIdstring or nullpaymentIdstring or nullfailureMessagestring or nullcreatedAtstring
Uuid
string (uuid)