Skip to navigation

Start Stripe Funding

View as Markdown

Start a saved-card or Apple Pay or Google Pay debit-card deposit.

Available to: All authenticated users

Environments: Live

Rate Limit: 20 requests per rolling hour, 3-second back-off, counts all requests, CAPTCHA enabled

CAPTCHA fallback: If a penalty response includes p-captcha: true, stop API retries and do not retry with p-ticket. A server-side integration cannot solve the reCAPTCHA challenge. Direct the user to the NinjaTrader-hosted funding flow, or wait approximately one hour for the penalty count to clear before resuming API calls.

Use this endpoint for the deposit operation after checking eligibility.

Saved Card

Send accountId, amount, currencyId, and NinjaTrader’s approved numeric fundingMethodId. The method must have been approved by ANI or a successful Dyneti scan and must not be archived.

Apple Pay or Google Pay

Use Stripe Express Checkout in the user’s client to create a confirmation token. Send accountId, amount, currencyId, stripeConfirmationToken, and flowType: WalletFunding. Wallet funding does not call addStripeDebitCard and does not run ANI or Dyneti.

Warning: The generated schema also exposes stripePaymentMethod, signature, and date. The supported partner flows use either fundingMethodId or stripeConfirmationToken; do not use the legacy fields as a direct-deposit path.
Warning: HTTP 200 does not guarantee the deposit succeeded. A successful deposit, a canceled deposit, and another terminal Stripe outcome can each return an empty body with no errorText. Do not credit the deposit from this response alone.

Before calling this endpoint, retrieve the account’s existing CashBalanceLog entries and record the highest id. After the call, poll that endpoint with the same accountId as masterid. Confirm the deposit only after a newer entry appears with the requested currencyId, a positive delta equal to the deposit amount, and cashChangeType: FundTransaction. An empty startStripeFunding response without that matching ledger entry is not confirmation; do not retry the charge blindly. If your integration cannot perform this reconciliation, use the NinjaTrader-hosted funding flow.

Common Failure Scenarios

  • Account is closed or restricted
  • Eligibility check fails
  • Saved funding method is absent, unapproved, archived, or does not belong to the account holder
  • Another fund transaction for the account is in progress
  • Wallet token has no wallet PaymentMethod preview
  • Wallet type is not Apple Pay or Google Pay
  • Card is not debit or the cardholder name does not match
  • User has a declined card under review

Related Endpoints

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
accountIdlongRequired
amountdoubleRequired
currencyIdlongRequired
fundingMethodIdlongOptional
stripePaymentMethodstringOptional<=8192 characters
stripeConfirmationTokenstringOptional<=8192 characters
flowTypeenumOptional
Standard, WalletFunding
Allowed values:
signaturestringOptional<=8192 characters
datestringOptional<=8192 characters

Response

StartStripeFundingResponse
errorTextstringOptional<=8192 characters

Non-empty if the request failed

stripePaymentIntentIdlongOptional
stripeClientSecretstringOptional<=8192 characters