Skip to main content
POST
Submit card and customer info for a product

Authorizations

Authorization
string
header
required

This will be provided by Paysight

Path Parameters

productId
integer
required

ID of the Paysight product. This can be found at https://app.paysight.io/management/products

Body

application/json
card
object
required
email
string
required

Customer email address

amount
number
required

Amount to charge in the transaction

paysightSession
string

Unique session identifier from Paysight. Either this or partnerSession must be provided.

partnerSession
string

Session identifier from the partner's system. Either this or paysightSession must be provided.

phone
string

Customer phone number

address
object
shippingAddress
object
mid
string

Override to explicitly set for the transaction. It will override the Paysight logic for selecting the MID. Omit by default.

props
object

Custom metadata as key-value pairs

campaignId
integer

Paysight assigned ID of the campaign. Please set as 0 (or omit) unless you have the appropriate Paysight value

affiliateId
integer

Paysight assigned ID of the traffic source / affiliate. Please set as 0 (or omit) unless you have the appropriate Paysight value

campaignName
string

Name (or alias or your identifier) of your campaign. If campaignId is 0 and this value is provided, Paysight will auto-assign or auto-create (if new value) the campaign record

affiliateName
string

Name (or alias or your identifier) of your affiliate/traffic source. If affiliateId is 0 and this value is provided, Paysight will auto-assign or auto-create (if new value) the affiliate (traffic source) record

subAffiliate
string

Sub-affiliate identifier, if applicable. This can be passed in the format 'primarysubid_secondarysubId' (or simply primarysubid if no secondary source is present). These fields are available as breakdowns in Reporting as Primary Sub ID and Secondary Sub ID

trackhouseClickId
string

Tracking click ID from Trackhouse. Not required

threeDSecure
object
useragent
string

User-Agent header from client request

ip
string

IP address of the client

cascade
boolean

If true, will attempt a cascade, i.e. a second authorization attempt on another MID if selection conditions are met

applePay
boolean

Set to true if this transaction should use Apple Pay

shopify
object

Shopify-specific checkout options. Only required for Shopify integrations.

Response

Card submission result. Covers all transaction outcomes including success, all decline types, 3DS pending, already-subscribed, and pre-processing errors. Inspect info and statusId to determine the specific outcome. See the SubmitResult schema for the full statusId reference table.

paysightSession
string

Paysight session identifier

partnerSession
string

Partner session identifier

subscribeSuccess
boolean

Indicates if the subscription was created successfully.

chargeSuccess
boolean

Indicates if the charge transaction was fully captured.

info
enum<string>

High-level outcome of the submission. Possible values:

  • Success – Transaction completed successfully. subscribeSuccess and/or chargeSuccess will be true.
  • Error – Transaction-level failure. A transaction was attempted; check statusId for the decline reason.
  • Failed – Pre-processing validation failure; no transaction was logged. Check the error field.
  • LimitReached – A rate or frequency limit was exceeded; no transaction was logged. Check the error field.
  • UserBlocked – The user, card, BIN, or email is blocked; no transaction was logged. Check the error field.
  • AlreadySubscribed – Customer is already subscribed; no new transaction was created.
  • Pending – Awaiting 3D Secure authentication; threeDSecureId will be populated. Call POST /api/{productId}/3ds to complete.
  • RedirectRequired – A redirect is required to complete the transaction.
Available options:
Success,
Error,
Failed,
LimitReached,
UserBlocked,
None,
AlreadySubscribed,
Pending,
RedirectRequired
error
string

Specific error message. Interpretation depends on the accompanying info value.

When info is "Error" (statusId > 0, transaction was attempted): This field contains the status description from the payment processor corresponding to the statusId value. See the statusId reference tables for the full list.

When info is "Failed" (no transaction logged, statusId: 0):

  • "Blocked" – Request blocked at the platform level.
  • "Blocked Card" – The specific card is blocked.
  • "Invalid expiry" – Card expiryMonth or expiryYear is zero or missing.
  • "Invalid CVV" – CVV/CVC value is invalid or missing.
  • "Invalid CC Number" – Card number failed validation.
  • "Invalid Email" – Email address is invalid or missing.
  • "VISA cards not Supported" – VISA cards are not accepted for this product/MID.
  • "Mastercard cards not supported" – Mastercard cards are not accepted for this product/MID.
  • "Discover cards not supported" – Discover cards are not accepted for this product/MID.
  • "AMEX cards not supported" – American Express cards are not accepted for this product/MID.
  • "MAESTRO cards not supported" – Maestro cards are not accepted for this product/MID.
  • "Bin and Last4 required along with Encrypted data"bin and lastFour must be provided when submitting encrypted card data.
  • "Specified Mid not found" – The mid field does not match any known MID.
  • "Specified Mid does not belong to Tenant account" – The mid field references a MID from a different tenant.

When info is "LimitReached" (no transaction logged, statusId: 0):

  • "CC entered too many times in quick succession" – The card number has been submitted too frequently in a short window.
  • "Email entered too many times for this product" – The email address has been used too many times for this product.

When info is "UserBlocked" (no transaction logged, statusId: 0):

  • "Blocked card" – Card BIN is from a blocked country.
  • "Blocked" – User is blacklisted (by email, card number, or BIN).
email
string

Email address associated with the transaction.

message
string

General message about the result. For pre-processing errors this mirrors the error field. For 3D Secure pending flows this will be empty; check threeDSecureId instead.

orderId
integer

Order identifier for the subscription or charge record.

descriptor
string

Credit card descriptor that will appear on the cardholder's statement.

mid
string

Merchant ID (MID number) used for the transaction.

threeDSecureId
string

Identifier for the 3D Secure session. Populated only when info is "Pending". Pass this value to POST /api/{productId}/3ds to complete the authentication flow. Null or empty in all other cases.

transactionId
string

Unique transaction identifier from the payment processor.

amount
number

Amount charged in the transaction currency.

statusId
integer

Paysight transaction status code. 0 means no transaction was logged (pre-validation failure or unexpected error). All other values represent a processed transaction outcome.

For the complete reference with retry guidance see the Error & Decline Handling Guide.


Successful


Issuer Declines

The issuing bank rejected the transaction. The card or account is the primary cause.


Insufficient Funds


Invalid Card Details

The card number, expiry, CVV, or holder name is invalid or failed verification.


Other / System Errors

Gateway configuration issues, platform-level blocks, duplicate detection, communication failures, and other non-issuer, non-card errors. No transaction may be retried without resolving the underlying cause.

declineSalvage
boolean

true if the customer was subscribed even though the charge was declined (e.g. a grace-period subscription on an insufficient-funds decline). In this case subscribeSuccess may be true while chargeSuccess is false.

merchantAccountId
integer

Paysight internal ID for the Merchant Account used for the transaction.

midPortalUrl
string

Optional portal URL defined on the Paysight Brand entry. See https://app.paysight.io/management/brands/

bin
string

Bank Identification Number (first 8 digits of PAN).

binCountry
string

Country of the BIN (ISO 3166-1 alpha-2) if available, e.g. "US".

last4
string

Last 4 digits of the card number.

eci
string

Electronic Commerce Indicator for 3D Secure transactions. "02" / "05" = fully authenticated (liability shift applies). "01" / "06" = attempted authentication.

networkTokenized
boolean

Indicates whether the transaction was processed using a network token.

submitOrderId
integer

Identifier for the card-submit event. When the submit does not result in a subscription this equals orderId. When a subscription is created (even if the charge fails) this value differs from orderId.

applePay
boolean

Indicates if the transaction was processed as an Apple Pay payment.

googlePay
boolean

Indicates if the transaction was processed as a Google Pay payment.

gatewayResponses
object[]

Raw gateway responses from each processing attempt (useful for debugging declines).

subscriptionId
integer

Paysight subscription ID created by this submit. 0 if no subscription was created.