braintree · Schema

Braintree Transaction

Represents a payment transaction processed through the Braintree gateway. A transaction captures the full lifecycle from authorization through settlement, refund, or void, and supports credit and debit cards, PayPal, Apple Pay, Google Pay, Venmo, ACH, and SEPA payment methods.

Properties

Name Type Description
id string Unique identifier for the transaction assigned by Braintree.
amount string The transaction amount as a decimal string in the transaction currency.
status string The current processing status of the transaction.
type string The type of transaction. 'sale' represents a charge and 'credit' represents a refund.
currency_iso_code string ISO 4217 three-letter currency code for the transaction.
order_id string Merchant-provided order identifier associated with this transaction for reconciliation.
merchant_account_id string Identifier of the Braintree merchant account used to process this transaction.
customer_id string Identifier of the customer in the Braintree Vault associated with this transaction, if applicable.
payment_method_token string Token of the vaulted payment method used for this transaction, if applicable.
payment_method_nonce string The one-time payment method nonce used for this transaction, if applicable.
processor_response_code string The processor-specific response code returned when the transaction was processed.
processor_response_text string Human-readable text description of the processor response code.
gateway_rejection_reason string The reason the Braintree gateway rejected the transaction, if applicable.
tax_amount string The tax amount included in the transaction total, as a decimal string.
shipping_amount string The shipping amount included in the transaction total, as a decimal string.
transaction_source string Indicates the origin of the transaction for network reporting requirements.
billing object Billing address associated with this transaction.
shipping object Shipping address associated with this transaction.
customer_details object Summary of the customer associated with this transaction.
credit_card_details object Masked credit or debit card details used in this transaction.
descriptor object Dynamic descriptor fields that appear on the customer's bank statement.
refund_ids array List of transaction identifiers for refund transactions created against this transaction.
refunded_transaction_id string For refund transactions, the identifier of the original transaction being refunded.
subscription_id string Identifier of the subscription that generated this transaction, if applicable.
line_items array Line items for Level 3 processing data, up to 249 items.
disbursement_details object Disbursement information for when the transaction funds were or will be sent to the merchant.
created_at string Timestamp when the transaction was created, in ISO 8601 format.
updated_at string Timestamp when the transaction was last updated, in ISO 8601 format.
View JSON Schema on GitHub

JSON Schema

braintree-transaction-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/braintree/schemas/transaction.json",
  "title": "Braintree Transaction",
  "description": "Represents a payment transaction processed through the Braintree gateway. A transaction captures the full lifecycle from authorization through settlement, refund, or void, and supports credit and debit cards, PayPal, Apple Pay, Google Pay, Venmo, ACH, and SEPA payment methods.",
  "type": "object",
  "required": ["id", "amount", "status", "type"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the transaction assigned by Braintree.",
      "minLength": 1
    },
    "amount": {
      "type": "string",
      "description": "The transaction amount as a decimal string in the transaction currency.",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "10.00"
    },
    "status": {
      "type": "string",
      "description": "The current processing status of the transaction.",
      "enum": [
        "authorization_expired",
        "authorized",
        "authorizing",
        "settlement_confirmed",
        "settlement_declined",
        "settlement_pending",
        "settled",
        "settling",
        "submitted_for_settlement",
        "voided",
        "processor_declined",
        "failed",
        "gateway_rejected"
      ]
    },
    "type": {
      "type": "string",
      "description": "The type of transaction. 'sale' represents a charge and 'credit' represents a refund.",
      "enum": ["sale", "credit"]
    },
    "currency_iso_code": {
      "type": "string",
      "description": "ISO 4217 three-letter currency code for the transaction.",
      "pattern": "^[A-Z]{3}$",
      "example": "USD"
    },
    "order_id": {
      "type": "string",
      "description": "Merchant-provided order identifier associated with this transaction for reconciliation.",
      "maxLength": 255
    },
    "merchant_account_id": {
      "type": "string",
      "description": "Identifier of the Braintree merchant account used to process this transaction."
    },
    "customer_id": {
      "type": "string",
      "description": "Identifier of the customer in the Braintree Vault associated with this transaction, if applicable.",
      "maxLength": 36
    },
    "payment_method_token": {
      "type": "string",
      "description": "Token of the vaulted payment method used for this transaction, if applicable."
    },
    "payment_method_nonce": {
      "type": "string",
      "description": "The one-time payment method nonce used for this transaction, if applicable."
    },
    "processor_response_code": {
      "type": "string",
      "description": "The processor-specific response code returned when the transaction was processed.",
      "pattern": "^\\d{4}$"
    },
    "processor_response_text": {
      "type": "string",
      "description": "Human-readable text description of the processor response code."
    },
    "gateway_rejection_reason": {
      "type": "string",
      "description": "The reason the Braintree gateway rejected the transaction, if applicable.",
      "enum": [
        "avs",
        "avs_and_cvv",
        "cvv",
        "duplicate",
        "fraud",
        "risk_threshold",
        "three_d_secure",
        "token_issuance",
        "application_incomplete"
      ]
    },
    "tax_amount": {
      "type": "string",
      "description": "The tax amount included in the transaction total, as a decimal string.",
      "pattern": "^\\d+\\.\\d{2}$"
    },
    "shipping_amount": {
      "type": "string",
      "description": "The shipping amount included in the transaction total, as a decimal string.",
      "pattern": "^\\d+\\.\\d{2}$"
    },
    "transaction_source": {
      "type": "string",
      "description": "Indicates the origin of the transaction for network reporting requirements.",
      "enum": ["recurring", "recurring_first", "unscheduled", "moto"]
    },
    "billing": {
      "$ref": "#/$defs/Address",
      "description": "Billing address associated with this transaction."
    },
    "shipping": {
      "$ref": "#/$defs/Address",
      "description": "Shipping address associated with this transaction."
    },
    "customer_details": {
      "$ref": "#/$defs/CustomerSummary",
      "description": "Summary of the customer associated with this transaction."
    },
    "credit_card_details": {
      "$ref": "#/$defs/CreditCardDetails",
      "description": "Masked credit or debit card details used in this transaction."
    },
    "descriptor": {
      "$ref": "#/$defs/Descriptor",
      "description": "Dynamic descriptor fields that appear on the customer's bank statement."
    },
    "refund_ids": {
      "type": "array",
      "description": "List of transaction identifiers for refund transactions created against this transaction.",
      "items": {
        "type": "string",
        "description": "Unique identifier of a refund transaction."
      }
    },
    "refunded_transaction_id": {
      "type": "string",
      "description": "For refund transactions, the identifier of the original transaction being refunded."
    },
    "subscription_id": {
      "type": "string",
      "description": "Identifier of the subscription that generated this transaction, if applicable."
    },
    "line_items": {
      "type": "array",
      "description": "Line items for Level 3 processing data, up to 249 items.",
      "maxItems": 249,
      "items": {
        "$ref": "#/$defs/LineItem"
      }
    },
    "disbursement_details": {
      "$ref": "#/$defs/DisbursementDetails",
      "description": "Disbursement information for when the transaction funds were or will be sent to the merchant."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the transaction was created, in ISO 8601 format."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the transaction was last updated, in ISO 8601 format."
    }
  },
  "$defs": {
    "Address": {
      "type": "object",
      "description": "A billing or shipping address associated with a transaction or customer.",
      "properties": {
        "first_name": {
          "type": "string",
          "description": "First name of the address holder.",
          "maxLength": 255
        },
        "last_name": {
          "type": "string",
          "description": "Last name of the address holder.",
          "maxLength": 255
        },
        "company": {
          "type": "string",
          "description": "Company or organization name at this address.",
          "maxLength": 255
        },
        "street_address": {
          "type": "string",
          "description": "Primary street address line.",
          "maxLength": 255
        },
        "extended_address": {
          "type": "string",
          "description": "Secondary address line such as apartment or suite number.",
          "maxLength": 255
        },
        "locality": {
          "type": "string",
          "description": "City or locality of the address.",
          "maxLength": 255
        },
        "region": {
          "type": "string",
          "description": "State, province, or region code of the address.",
          "maxLength": 255
        },
        "postal_code": {
          "type": "string",
          "description": "Postal or ZIP code of the address.",
          "maxLength": 9
        },
        "country_code_alpha2": {
          "type": "string",
          "description": "Two-letter ISO 3166-1 alpha-2 country code.",
          "pattern": "^[A-Z]{2}$"
        },
        "country_name": {
          "type": "string",
          "description": "Full country name.",
          "maxLength": 255
        }
      }
    },
    "CustomerSummary": {
      "type": "object",
      "description": "A summary of the customer associated with a transaction.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the customer in the Braintree Vault.",
          "maxLength": 36
        },
        "first_name": {
          "type": "string",
          "description": "Customer's first name.",
          "maxLength": 255
        },
        "last_name": {
          "type": "string",
          "description": "Customer's last name.",
          "maxLength": 255
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "Customer's email address.",
          "maxLength": 255
        },
        "phone": {
          "type": "string",
          "description": "Customer's phone number.",
          "maxLength": 255
        },
        "company": {
          "type": "string",
          "description": "Customer's company or organization name.",
          "maxLength": 255
        }
      }
    },
    "CreditCardDetails": {
      "type": "object",
      "description": "Masked credit or debit card details used in a transaction.",
      "properties": {
        "bin": {
          "type": "string",
          "description": "First six digits of the card number, identifying the issuing bank and card type.",
          "pattern": "^\\d{6}$"
        },
        "last_4": {
          "type": "string",
          "description": "Last four digits of the card number.",
          "pattern": "^\\d{4}$"
        },
        "card_type": {
          "type": "string",
          "description": "The card network or brand.",
          "enum": [
            "American Express",
            "Carte Blanche",
            "China UnionPay",
            "Diners Club",
            "Discover",
            "Elo",
            "JCB",
            "Laser",
            "Maestro",
            "MasterCard",
            "Solo",
            "Switch",
            "Visa",
            "Unknown"
          ]
        },
        "expiration_month": {
          "type": "string",
          "description": "Two-digit expiration month of the card.",
          "pattern": "^(0[1-9]|1[0-2])$"
        },
        "expiration_year": {
          "type": "string",
          "description": "Four-digit expiration year of the card.",
          "pattern": "^\\d{4}$"
        },
        "cardholder_name": {
          "type": "string",
          "description": "Name of the cardholder as it appears on the card.",
          "maxLength": 175
        },
        "country_of_issuance": {
          "type": "string",
          "description": "Two-letter ISO 3166-1 country code of the card-issuing country.",
          "pattern": "^[A-Z]{2}$"
        },
        "token": {
          "type": "string",
          "description": "Vault token for this card if it was stored during the transaction."
        }
      }
    },
    "Descriptor": {
      "type": "object",
      "description": "Dynamic descriptor fields that appear on the cardholder's bank or credit card statement.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Merchant name as it appears on the customer's statement. Maximum 22 characters.",
          "maxLength": 22
        },
        "phone": {
          "type": "string",
          "description": "Merchant phone number as it appears on the customer's statement. 10–14 digits.",
          "maxLength": 14,
          "pattern": "^\\d{10,14}$"
        },
        "url": {
          "type": "string",
          "description": "Merchant URL as it appears on the customer's statement. Maximum 13 characters.",
          "maxLength": 13
        }
      }
    },
    "LineItem": {
      "type": "object",
      "description": "A single product or service line item included for Level 3 processing data.",
      "required": ["name", "quantity", "unit_amount", "total_amount", "kind"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name or description of the product or service.",
          "maxLength": 127
        },
        "description": {
          "type": "string",
          "description": "Additional description of the line item.",
          "maxLength": 127
        },
        "kind": {
          "type": "string",
          "description": "Whether this item is a debit (charge) or credit (discount/refund).",
          "enum": ["debit", "credit"]
        },
        "quantity": {
          "type": "string",
          "description": "Quantity of the line item as a decimal string.",
          "pattern": "^\\d+\\.\\d{4}$",
          "example": "1.0000"
        },
        "unit_amount": {
          "type": "string",
          "description": "Unit price of the line item as a decimal string.",
          "pattern": "^\\d+\\.\\d{2}$",
          "example": "5.00"
        },
        "total_amount": {
          "type": "string",
          "description": "Total amount for this line item (quantity × unit_amount) as a decimal string.",
          "pattern": "^\\d+\\.\\d{2}$",
          "example": "5.00"
        },
        "unit_of_measure": {
          "type": "string",
          "description": "Unit of measure for the quantity, such as 'each', 'kg', or 'oz'.",
          "maxLength": 12
        },
        "commodity_code": {
          "type": "string",
          "description": "Commodity code identifying the type of goods for Level 3 processing.",
          "maxLength": 12
        },
        "tax_amount": {
          "type": "string",
          "description": "Tax amount for this line item as a decimal string.",
          "pattern": "^\\d+\\.\\d{2}$"
        },
        "discount_amount": {
          "type": "string",
          "description": "Discount amount applied to this line item as a decimal string.",
          "pattern": "^\\d+\\.\\d{2}$"
        },
        "product_code": {
          "type": "string",
          "description": "Merchant-defined product code or SKU for this line item.",
          "maxLength": 12
        },
        "url": {
          "type": "string",
          "format": "uri",
          "description": "URL for the product page of this line item."
        }
      }
    },
    "DisbursementDetails": {
      "type": "object",
      "description": "Details about the disbursement of transaction funds to the merchant's bank account.",
      "properties": {
        "disbursement_date": {
          "type": "string",
          "format": "date",
          "description": "Date on which the funds were or will be disbursed to the merchant."
        },
        "settlement_amount": {
          "type": "string",
          "description": "Amount that was or will be disbursed, in the settlement currency.",
          "pattern": "^\\d+\\.\\d{2}$"
        },
        "settlement_currency_iso_code": {
          "type": "string",
          "description": "ISO 4217 currency code of the settlement currency.",
          "pattern": "^[A-Z]{3}$"
        },
        "funds_held": {
          "type": "boolean",
          "description": "If true, the funds are being held and not yet disbursed to the merchant."
        }
      }
    }
  }
}