Payment

The Payment object represents a single attempt to move money into your account. Checkout confirmation is the most common way to create Payment.

  • amount
    Type: integerFormat: int64
    required

    Amount charged in smallest currency unit

  • created
    Type: stringFormat: date-time
    required

    Unix timestamp when payment was created

  • currency
    Type: object · Currency
    required

    Three-letter ISO currency code

    • iso
      Type: string
      required

      Three-letter ISO currency code

    • scale
      Type: integer
      required

      Number of decimal places for this currency

  • id
    Type: string
    required

    Unique identifier for the transaction

  • latest_status
    Type: string
    required

    Latest status of the payment

  • livemode
    Type: boolean
    required

    Has the value true if the object exists in live mode or the value false if the object exists in test mode.

  • status
    Type: stringenum
    required

    The status of the payment is either succeeded, pending, or failed.

    values
    • failed
    • pending
    • succeeded
  • account
    Type: object · Account
    deprecated
    nullable

    Details about the account that is holding the funds.

    • created
      Type: stringFormat: date-time
      required

      Time at which the account was connected. Measured in seconds since the Unix epoch.

    • id
      Type: string
      max length:  
      100
      required

      Unique identifier for the object.

    • business_profile
      Type: object · BusinessProfile
    • business_type
      Type: string | null · BusinessTypeenum

      The business type.

      values
      • company
      • individual
      • non_profit
    • company
      Type: object · Company

      Information about the company or business.

    • country
      Type: string
      max length:  
      100

      The account's country.

    • default_currency
      Type: string · CurrencyCode

      Three-letter ISO currency code representing the default currency for the account.

    • details_submitted
      Type: boolean

      Whether account details have been submitted. Accounts with Paypercut Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to an onboarding flow to finish submitting account details.

    • email
      Type: string | null

      The email address of the account holder. This is only to make the account easier to identify to you.

    • metadata

      Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

      • propertyName
        Type: string
    • requirements
      Type: object · AccountRequirements
    • tos_acceptance
      Type: object · tos_acceptance_specs

      Details on the account's acceptance of the Paypercut Services Agreement.

    • type
      Type: stringenum

      The type of account to create. May be one of custom, express or standard.

      values
      • standard
      • custom
      • express
  • account_id
    Type: string
    deprecated

    Account ID

  • amount_captured
    Type: integerFormat: int64

    Amount in cents (or local equivalent) captured (can be less than the amount attribute on the payment if a partial capture was made).

  • amount_refunded
    Type: integerFormat: int64

    Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the payment if a partial refund was issued).

  • balance_transaction

    Balance transactions represent funds moving through your account.

    • amount
      Type: integerFormat: int64

      Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party.

    • created
      Type: stringFormat: date-time

      Time at which the object was created. Measured in seconds since the Unix epoch.

    • currency
      Type: object · Currency

      Three-letter ISO currency code

    • exchange_rate
      Type: number | nullFormat: double

      If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the amount in currency A, multipled by the exchange_rate, equals the amount in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's amount is 1000 and currency is eur. If this converts to 12.34 USD in your account, the BalanceTransaction's amount is 1234, its currency is usd, and the exchange_rate is 1.234.

    • fee
      Type: integerFormat: int64

      Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed.

    • id
      Type: string
      max length:  
      5000

      Unique identifier for the object.

    • net
      Type: integerFormat: int64

      Net impact to the balance (in cents (or local equivalent)). A positive value represents incrementing the balance, and a negative value decrementing the balance. You can calculate the net impact of a transaction on a balance by amount - fee

  • captured
    Type: boolean

    If the payment was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.

  • checkout_id
    Type: string | null

    ID of the checkout that created this transaction

  • client_reference_id
    Type: string | null
    max length:  
    100

    A unique string to reference the Checkout Session. This can be a customer ID, a cart ID, or similar, and can be used to reconcile the Session with your internal systems.

  • customer
    • Type: string · CustomerId
      max length:  
      100

      ID of the customer this charge is for if one exists.

  • disputed
    Type: boolean

    Whether the charge has been disputed.

  • failure_code
    Type: string | null
    max length:  
    5000

    Failure code, only set if status is failed.

  • failure_message
    Type: string | null
    max length:  
    5000

    Detailed failure message, only set if status is failed.

  • fee
    Type: integerFormat: int64

    Fees (in cents) paid for this transaction. Represented as a positive integer when assessed.

  • fee_details
    Type: array object[] · Fee[]

    Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction.

    • amount
      Type: integerFormat: int64
      required

      Amount of the fee, in cents.

    • currency
      Type: object · Currency
      required

      Three-letter ISO currency code

    • type
      Type: string
      max length:  
      5000
      required

      Type of the fee.

    • applied_amount
      Type: integerFormat: int64

      The actual amount that is recorded to the transaction after any rules for discounts or other processing is applied to the original amount. Amount in currency base units. The actual amount equals units / {currency.scale} power of 10. For example, when units is 12312 and {currency.scale} is 2, the actual amount is 12312 / 10^2 = 123.12

    • applied_amount_currency
      Type: object · Currency

      Three-letter ISO currency code

    • balance_account_id
      Type: string | null

      ID of the balance account that earned the fee.

    • description
      Type: string | null
      max length:  
      5000

      An arbitrary string attached to the object. Often useful for displaying to users.

    • exchange_rate

      Exchange rate if applied on the fee to convert it to the base currency of the payment.

    • fixed_amount
      Type: numberFormat: double

      Fixed fee amount in the currency's standard unit format, applied independently of the transaction amount. This represents the actual monetary value (e.g., 0.30 for $0.30 USD, 2.50 for €2.50 EUR). This fixed component is commonly used for per-transaction fees (e.g., $0.30 for card processing), account maintenance fees, or minimum transaction charges. When both rate and fixed_amount are present, the total fee equals (transaction_amount × rate / 10000) + fixed_amount.

    • payee
      Type: string

      To whom the fee is being paid.

    • payer
      Type: string

      Defines who is paying the fee. For example for fee of type processing_fee, the payer is payee.

    • rate
      Type: numberFormat: double

      Fee percentage of a charge amount in basis points. The actual value equals units / 100. For example, when units is 1, the actual value is 1 / 100 = 0.01 or when units is 10000, the actual value is 10000 / 100 = 100

    • rule
      Type: string

      Pricing rule information.

  • formatted_amount
    Type: string

    Human-readable amount in the currency's standard unit format. This represents the actual monetary value that would be displayed to end users (e.g., "20.00" for $20.00 USD, "2000" for ¥2000 JPY, "2000" for 2000 HUF). Use this for display purposes; use the 'amount' field for calculations and API requests.

  • fraud_details
    Type: object · payment_fraud_details nullable

    Information on fraud assessments for the payment.

    • fraud_score
      Type: integerFormat: int32

      Risk score from fraud check

    • response_state
      Type: string
      max length:  
      100

      Fraud check assessments and decision.

  • latest_operation
    Type: string

    The most recent operation performed on this payment.

  • merchant_account_id
    Type: string
    deprecated

    Merchant account ID

  • metadata

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

    • propertyName
      Type: string
  • outcome
    Type: object · payment_outcome nullable

    Details about whether the payment was accepted, and why.

    • type
      Type: string
      max length:  
      5000
      required

      Possible values are authorized, manual_review, issuer_declined, blocked, and invalid.

    • network_decline_code
      Type: string | null
      max length:  
      5000

      For payments declined by the network, a brand specific 2, 3, or 4 digit code which indicates the reason the authorization failed.

    • network_status
      Type: string | null
      max length:  
      5000

      Possible values are approved_by_network, declined_by_network, not_sent_to_network, and reversed_after_approval.

    • risk_score
      Type: integerFormat: int32

      Possible values for evaluated payments are between 0 and 100.

    • seller_message
      Type: string | null
      max length:  
      5000

      A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer.

  • paid
    Type: boolean

    true if the charge succeeded, or was successfully authorized for later capture.

  • payment_intent
    • Type: string · IntentId
      max length:  
      100

      ID of the PaymentIntent associated with this charge, if one exists.

  • payment_method
    Type: string

    Payment method used

  • payment_method_details
    Type: object · payment_method_details

    Details about the payment method at the time of the payment.

    • card
      Type: object · payment_method_details_card
  • refunded
    Type: boolean

    Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.

  • statement_descriptor
    Type: string | null
    max length:  
    100

    For a non-card payment, text that appears on the customer's statement as the statement descriptor. This value overrides the account's default statement descriptor.

  • updated
    Type: stringFormat: date-time

    When the transaction was last updated