Spreedly Receivers API

Receivers let merchants forward securely vaulted payment data from the Spreedly vault to arbitrary third-party HTTP endpoints, extending tokenization beyond payment gateways to any API that needs card data.

OpenAPI Specification

spreedly-api-v1.json Raw ↑
{"openapi":"3.1.0","info":{"title":"Spreedly API V1","version":"v1","description":"An OpenAPI specification file for V1 of the Spreedly Core Transactional API"},"x-explorer-enabled":false,"components":{"parameters":{"gateway_token":{"name":"gateway_token","description":"The token of the gateway to execute against","in":"path","required":true,"schema":{"type":"string"}},"transaction_token":{"name":"transaction_token","description":"The token uniquely identifying this transaction (not the created payment method) at Spreedly.","in":"path","required":true,"schema":{"type":"string"}},"format":{"name":"format","description":"The format of the request. Default JSON for testing in our documentation.","in":"path","required":true,"schema":{"type":"string","enum":["json","xml"],"example":"json"}}},"securitySchemes":{"basic_auth":{"type":"http","scheme":"basic","description":"Unless otherwise noted, all calls to the Spreedly API use [HTTP basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) over HTTPS.\n            Use the [environment key](https://developer.spreedly.com/docs/the-spreedly-app#environment-key) of the Spreedly environment you wish to execute against as the HTTP basic user, and one of your organization's [access secrets](https://developer.spreedly.com/docs/the-spreedly-app#access-secrets) as the HTTP basic password."}},"schemas":{"errors":{"type":"array","items":{"type":"object","properties":{"attribute":{"type":"string","description":"Which attribute(s) have an error"},"key":{"type":"string","description":"Error Key"},"message":{"type":"string","description":"Error Message"}},"required":["key","message"]}},"unsupported_error":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Error Key"},"message":{"type":"string","description":"Error Message"},"ability":{"type":"string","description":"The transaction the gateway does not support"}}}}}},"gateway":{"type":"object","properties":{"gateway":{"type":"object","additionalProperties":{"description":"The merchant credentials required for this type of gateway. Stripe has login, but your gateway type will most likely require a different set of credentials. Please reference the [gateway's documentation](https://developer.spreedly.com/docs/supported-gateways) to determine the appropriate credential(s) to pass here. The only gateway type that does not require such credentials is the Spreedly `test` gateway.","type":"string"},"properties":{"gateway_type":{"type":"string","description":"The type (short name) of the gateway. Use this value when provisioning a gateway. You can find the list of supported gateways and their respective gateway types [on this page](https://developer.spreedly.com/docs/supported-gateways)"},"description":{"type":"string","description":"A description of the gateway. Useful to differentiate between multiple gateways of the same type provisioned within your system."},"merchant_profile_key":{"type":"string","description":"The token for an existing Merchant Profile in your environment. Useful to organize gateways in an environment with multiple merchants, or to associate merchant data with gateway transactions."},"sub_merchant_key":{"type":"string","description":"The token for an existing Sub-merchant in your environment. Useful for tagging the transactions through this gateway with the sub-merchant who transacts through the gateway."},"sandbox":{"type":"boolean","description":"**true** or **false**. Useful to test out a gateway's sandbox mode, this is recommended in situations where the gateway integration is difficult and where you don't want to execute real transactions."}},"required":["gateway_type"]}}},"gateway_properties":{"type":"object","properties":{"token":{"type":"string","description":"The token identifying the provisioned gateway at Spreedly"},"name":{"type":"string","description":"The human readable name of the gateway"},"gateway_type":{"type":"string","description":"The type (short name) of the gateway. Use this value when provisioning a gateway"},"description":{"type":"string","description":"The description of the provisioned gateway"},"merchant_profile_key":{"type":"string","description":"The token of the Merchant Profile associated with the provisioned gateway"},"sub_merchant_key":{"type":"string","description":"The token of the Sub-merchant associated with the provisioned gateway"},"state":{"type":"string","description":"The storage state of the gateway (retained, redacted, etc…)"},"sandbox":{"type":"boolean","description":"If the gateway was created in sandbox mode or not"},"redacted":{"type":"boolean","description":"If this gateway is redacted or not"},"credentials":{"type":"array","description":"The non-sensitive credentials used for this gateway"},"gateway_settings":{"type":"object","description":"The non-credential fields that can be specified at the gateway level, and included in all transactions"},"characteristics":{"type":"array","description":"A list of operations (such as purchase, capture etc…) that the gateway supports"},"payment_methods":{"type":"array","description":"A list of payment methods (such as credit_card, apple_pay, google_pay, etc…) that the gateway supports"},"gateway_specific_fields":{"$ref":"#/components/schemas/gateway_specific_fields"},"created_at":{"type":"string","description":"The time the gateway was created"},"updated_at":{"type":"string","description":"The time the gateway was last updated"}}},"gateway_specific_fields":{"type":"array","description":"The list of gateway specific fields that can be specified in supported gateway transactions","items":{"type":"string"}},"gateway_update":{"type":"object","properties":{"gateway":{"type":"object","properties":{"credentials":{"type":"string","description":"Gateway specific credential field(s). The merchant credentials required for this type of gateway. Stripe has login, but your gateway type will most likely require a different set of credentials. Please reference the [gateway's documentation](https://developer.spreedly.com/docs/supported-gateways) to determine the appropriate credential(s) to pass here."},"description":{"type":"string","description":"A description of the gateway. Useful to differentiate between multiple gateways of the same type provisioned within your system."},"merchant_profile_key":{"type":"string","description":"The token for an existing Merchant Profile in your environment. Useful to organize gateways in an environment with multiple merchants, or to associate merchant data with gateway transactions."},"sub_merchant_key":{"type":"string","description":"The token for an existing Sub-merchant in your environment. Useful for tagging the transactions through this gateway with the sub-merchant who transacts through the gateway."}}}}},"gateway_response":{"type":"object","properties":{"gateway":{"$ref":"#/components/schemas/gateway_properties"}}},"list_gateways_response":{"type":"object","properties":{"gateways":{"type":"array","items":{"$ref":"#/components/schemas/gateway_properties"}}}},"gateways_options_response":{"type":"object","properties":{"gateways":{"type":"object","properties":{"name":{"type":"string","description":"The human readable name of the gateway"},"gateway_type":{"type":"string","description":"The type (short name) of the gateway. Use this value when provisioning a gateway."},"auth_modes":{"type":"array","description":"A list of authorization modes for the gateway. An auth mode is basically a list of credentials required for this gateway (some gateways support various ways of entering credentials).","items":{"type":"object"}},"gateway_settings":{"type":"array","description":"The non-credential fields that can be specified at the gateway level, and included in all transactions","items":{"type":"object"}},"characteristics":{"type":"array","description":"A list of operations (such as purchase, capture etc…) that the gateway supports","items":{"type":"string"}},"payment_methods":{"type":"array","description":"A list of payment methods (such as credit_card, apple_pay, google_pay, etc…) that the gateway supports","items":{"type":"string"}},"gateway_specific_fields":{"$ref":"#/components/schemas/gateway_specific_fields"},"supported_countries":{"type":"array","description":"The list of countries this gateway supports","items":{"type":"string"}},"supported_cardtypes":{"type":"array","description":"The list of credit card brands this gateway supports","items":{"type":"string"}},"regions":{"type":"array","description":"The list of geographic regions this gateway supports (determined by the supported_countries)","items":{"type":"string"}},"homepage":{"type":"string","description":"The homepage associated with the gateway"},"display_api_url":{"type":"string","description":"The live endpoint for the gateway type"},"company_name":{"type":"string","description":"The company name associated with the gateway"}}}}},"transaction_response":{"type":"object","properties":{"transaction":{"$ref":"#/components/schemas/purchase_parameters"}}},"transactions_response":{"type":"object","properties":{"transactions":{"type":"array","items":{"$ref":"#/components/schemas/purchase_parameters"}}}},"authenticate_properties":{"type":"object","properties":{"token":{"type":"string","description":"The token uniquely identifying the transaction at Spreedly. This token can be passed into an `authorize` or `purchase` transaction via the `sca_authentication_token` field to automatically fill its `payment_method_token` and Third Party 3DS2 fields."},"succeeded":{"type":"boolean","description":"`true` if the transaction request was successfully executed, `false` otherwise"},"state":{"type":"string","description":"The current state of the authentication. Valid values are `succeeded`, `failed`, and `pending`"},"message":{"type":"string","description":"A human-readable string indicating the result of the transaction"},"transaction_type":{"type":"string","description":"The type of transaction; contains “Sca::Authentication” for a Spreedly 3DS Global authentication"},"gateway_transaction_key":{"type":"string","description":"The Spreedly transaction token of the parent gateway transaction"},"sca_provider_key":{"type":"string","description":"The SCA Provider that was used to create the authentication"},"acs_transaction_id":{"type":"string","description":"The unique ID of the transaction given by the ACS server (3DS2 only)"},"three_ds_server_trans_id":{"type":"string","description":"The unique ID of the transaction given by the 3DS Server (3DS2 only)"},"directory_server_transaction_id":{"type":"string","description":"The unique ID of the transaction given by the directory server (3DS2 only)"},"xid":{"type":"string","description":"The transaction identifier given by the 3DS Server"},"three_ds_version":{"type":"string","description":"The version of 3DS that was used to authenticate the transaction"},"flow_performed":{"type":"string","description":"An enumerated field that denotes what flow was most recently performed. Valid values are `frictionless`, `device_fingerprint`, `challenge`, `app_challenge`, and `not_authenticated`."},"ecommerce_indicator":{"type":"string","description":"Contains the ecommerce indicator (ECI) returned by the 3DS Server"},"directory_response_status":{"type":"string","description":"The transaction status given by the directory server in the initial response. This field’s value corresponds to the `transStatus` enumeration in the EMV 3-D Secure Protocol. Valid values can be `Y`, `N`, `U`, `A`, `C`, or `R`. Please see the EMV 3-D Secure Protocol spec for more information."},"authentication_response_status":{"type":"string","description":"The most recent transaction status given received by the 3DS Server. This field’s value corresponds to the `transStatus` enumeration in the EMV 3-D Secure Protocol. Valid values can be `Y`, `N`, `U`, `A`, `C`, or `R`. Please see the EMV 3-D Secure Protocol spec for more information."},"authentication_value":{"type":"string","description":"The authentication value returned by the 3DS Server for successful authentications"},"trans_status_reason":{"type":"string","description":"Provides information on why the `authentication_response_status` field has the specific value. This field’s value corresponds to the `transStatusReason` enumeration in the EMV 3-D Secure Protocol. Please see EMV 3-D Secure Protocol spec for more information."},"daf":{"type":"boolean","description":"Boolean field to indicate if the authentication request utilized Visa’s Digital Authentication Framework."},"managed_order_token":{"type":"string","description":"The token value provided by the protection provider running the authentication."},"payment_method_key":{"type":"string","description":"The token of the payment method being authenticated. This is the same as the `payment_method_token` field in the `sca_authentication` transaction request."}}},"authenticate":{"type":"object","properties":{"transaction":{"type":"object","properties":{"payment_method_token":{"type":"string","description":"The token of the payment method to use"},"currency_code":{"type":"string","description":"The currency of the funds, as [ISO 4217 alpha currency codes](https://en.wikipedia.org/wiki/ISO_4217#Active_codes), e.g., `USD` for US dollars."},"amount":{"type":"integer","description":"The amount to request, as an integer. E.g., `1000` for $10.00."},"test_scenario":{"type":"object","properties":{"scenario":{"type":"string","description":"The tested scenario."}},"description":"Additional fields to indicate valid 3DS2 test flow options. Please refer to our [3DS2 Global Testing Guide](https://developer.spreedly.com/docs/testing-your-3ds2-global-integration) to learn more about testing your 3DS2 Global integration with out Test SCA Provider."},"browser_info":{"type":"string","description":"Please refer to our [Spreedly 3DS2 Global Integration Guide for Web](https://developer.spreedly.com/docs/3ds-solutions), to learn how to include our `Lifecycle.js` library and gather the browser info data using `Spreedly.ThreeDS.serialize` method."},"force_daf":{"type":"boolean","description":"Boolean field that can be used to indicate if a transaction should use Visa’s DAF. For more information please refer to our [3DS2 Global DAF guide](https://developer.spreedly.com/docs/spreedly-3ds2-global-guide#visa-daf)"},"exemption_type":{"type":"string","description":"Type of exemption request to reduce likelihood of a transaction being challenged. The two exemptions currently supported are `low_value` and `transaction_risk_analysis_exemption`. See our [exemption guide](https://developer.spreedly.com/docs/spreedly-3ds2-global-guide#requesting-exemptions) to learn more"},"acquiring_bank_fraud_rate":{"type":"string","description":"Additional field required if requesting a `transaction_risk_analysis_exemption` that details threshold for bank fraud rate. See our [exemption guide](https://developer.spreedly.com/docs/spreedly-3ds2-global-guide#requesting-exemptions) to learn more"},"three_ds_requestor_challenge_ind":{"type":"string","description":"Indicates whether a challenge is being requested for a 3DS2 Global transaction."}},"required":["payment_method_token","browser_info"]}}},"authenticate_response":{"type":"object","properties":{"transaction":{"$ref":"#/components/schemas/authenticate_properties"}}},"capture":{"type":"object","properties":{"transaction":{"type":"object","description":"Root request element","properties":{"amount":{"type":"integer","description":"The amount to capture, as an integer. E.g., 1000 for $10.00. If not provided, the full amount of the original authorize will be captured."}}}}},"payment_method":{"type":"object","properties":{"token":{"type":"string","description":"The token identifying the payment method in the Spreedly vault"},"created_at":{"type":"string","description":"The time the payment method token was created"},"updated_at":{"type":"string","description":"The time the payment method token was last updated"},"email":{"type":"string","description":"The email address of the customer associated with this credit card"},"storage_state":{"type":"string","description":"The `storage_state` (retained, redacted, cached, used) of the payment method"},"test":{"type":"boolean","description":"`true` if this payment method is a test payment method and cannot be used against real gateways or receivers"},"metadata":{"type":"object","description":"metadata key-value pairs (limit 25). Keys are limited to 50 characters. Values are limited to 500 characters and cannot contain compounding data types"},"callback_url":{"type":"string","description":"The URL where Spreedly will attempt delivery of asynchronous results for 3DS and offsite transactions. Transaction results are posted in the format specified by `callback_format` if provided or XML if `callback_format` is not present or null. (default: `null`)"},"last_four_digits":{"type":"string","description":"The last four digits of the credit card number. This can be displayed to the user."},"first_six_digits":{"type":"string","description":"The first six digits of the credit card number. This can be displayed to the user."},"card_type":{"type":"string","description":"The [type](https://developer.spreedly.com/docs/supported-payment-methods), or brand, of the card. Please see the `card_type_mapping` function below for more detail."},"first_name":{"type":"string","description":"The first name of the cardholder"},"last_name":{"type":"string","description":"The last name of the cardholder"},"month":{"type":"string","description":"The expiration month"},"year":{"type":"string","description":"The expiration year"},"address1":{"type":"string","description":"The first line of the billing address"},"address2":{"type":"string","description":"The second line of the billing address"},"city":{"type":"string","description":"The city of the billing address"},"state":{"type":"string","description":"The state of the billing address"},"zip":{"type":"string","description":"The zip code of the billing address"},"country":{"type":"string","description":"The country code of the billing address"},"phone_number":{"type":"string","description":"The phone number of the billing address"},"company":{"type":"string","description":"The company of the cardholder"},"full_name":{"type":"string","description":"The full name of the cardholder."},"eligible_for_card_updater":{"type":"string","description":"`true` if this payment method should be included in Account Updater"},"shipping_address1":{"type":"string","description":"The first line of the shipping address"},"shipping_address2":{"type":"string","description":"The second line of the shipping address"},"shipping_city":{"type":"string","description":"The city of the shipping address"},"shipping_state":{"type":"string","description":"The state of the shipping address"},"shipping_zip":{"type":"string","description":"The zip code of the shipping address"},"shipping_country":{"type":"string","description":"The country code of the shipping address"},"issuer_identification_number":{"type":"string","description":"The numbers of the PAN required to identify the card issuer."},"click_to_pay":{"type":"string","description":"`true` if the card was tokenized using Click to Pay"},"managed":{"type":"string","description":"The value indicating the payment method's management status."},"payment_method_type":{"type":"string","description":"The type of this payment method, e.g., `credit_card`, `bank_account`, `apple_pay`, `google_pay`, `third_party_token`, etc…"},"errors":{"type":"string","description":"If the payment method is invalid (missing required fields, etc…), there will be associated error messages here"},"fingerprint":{"type":"string","description":"An identifying string that will match all cards in the environment with the same PAN"},"verification_value":{"type":"string","description":"The obscured verification value (CVV), e.g., XXX or XXXX"},"number":{"type":"string","description":"The obscured credit card number, e.g., XXXX-XXXX-XXXX-4444"},"bin_metadata":{"type":"object","description":"BIN metadata is available in the response if the card is enrolled in Advanced Vault. See [BIN metadata](https://developer.spreedly.com/docs/bin-metadata) for more information.","properties":{"card_brand":{"type":"string"},"card_category":{"type":"string"},"card_type":{"type":"string"},"issuing_bank":{"type":"string"},"issuing_country_iso_number":{"type":"string"},"issuing_country_iso_a2_code":{"type":"string"},"issuing_country_iso_a3_code":{"type":"string"},"issuing_country_iso_name":{"type":"string"},"issuing_bank_phone_number":{"type":"string"},"issuing_bank_website":{"type":"string"},"bin_type":{"type":"string"},"regulated":{"type":"string"},"max_pan_length":{"type":"string"},"message":{"type":"string"}}},"subscribed_to_mastercard_abu":{"type":"boolean","example":false,"description":"`true` if this payment method is subscribed to Mastercard ABU updating service"},"last_successfully_used":{"type":"string","format":"date-time","nullable":true,"description":"The time (UTC) the payment method was last successfully transacted with. The following transaction types are considered: Authorization, Purchase, Verification, GeneralCredit, OffsiteVerification, or OffsitePurchase"}}},"payment_method_request":{"type":"object","properties":{"payment_method":{"type":"object","properties":{"credit_card":{"$ref":"#/components/schemas/credit_card"},"bank_account":{"$ref":"#/components/schemas/bank_account"},"apple_pay":{"$ref":"#/components/schemas/apple_pay"},"google_pay":{"$ref":"#/components/schemas/google_pay"},"payment_method_type":{"type":"string","description":"For third party token vaulting requests, set to `third_party_token` to represent an externally vaulted payment method reference"},"reference":{"type":"string","description":"For third party token vaulting requests, the token identifying the payment method at the external gateway"},"gateway_type":{"type":"string","description":"Required for third party token vaulting requests. The type of the external gateway"},"email":{"type":"string","description":"The email address of the customer associated with this credit card"},"retained":{"type":"boolean","description":"`true` if this payment method should be automatically retained on creation"},"allow_blank_name":{"type":"boolean","description":"`true` if this payment method should skip the name validation requirement"},"allow_expired_date":{"type":"boolean","description":"`true` if this payment method should skip the expired date validation requirement"},"allow_blank_date":{"type":"boolean","description":"`true` if this payment method should skip the expiration date validation requirement"},"eligible_for_card_updater":{"type":"boolean","description":"`true` if this payment method should be included in Account Updater"},"metadata":{"type":"object","description":"metadata key-value pairs (limit 25). Keys are limited to 50 characters. Values are limited to 500 characters and cannot contain compounding data types"},"provision_network_token":{"$ref":"#/components/schemas/provision_network_token"}}}}},"payment_method_update_gratis":{"type":"object","properties":{"payment_method":{"type":"object","properties":{"managed":{"type":"boolean","description":"`true` or `false`"},"allow_blank_name":{"type":"boolean","description":"`true` if this payment method should skip the name validation requirement"},"allow_expired_date":{"type":"boolean","description":"`true` if this payment method should skip the expired date validation requirement"},"allow_blank_date":{"type":"boolean","description":"`true` if this payment method should skip the expiration date validation requirement"},"eligible_for_card_updater":{"type":"boolean","description":"`true` if this payment method should be included in Account Updater"},"callback_url":{"type":"string","description":"The URL where Spreedly will attempt delivery of asynchronous results for Advanced Vault, 3DS, and offsite transactions. Transaction results are posted in the format specified by `callback_format` if provided or XML if `callback_format` is not present or null. (default: `null`)"}}}}},"payment_method_update":{"type":"object","properties":{"payment_method":{"type":"object","properties":{"attribute":{"type":"string","description":"One or more non-sensitive attributes to update. Non-sensitive attributes are attributes excluding card numbers, verification values (CVV), bank account numbers etc..."},"allow_blank_name":{"type":"boolean","description":"`true` if this payment method should skip the name validation requirement (credit card only)"},"allow_expired_date":{"type":"boolean","description":"`true` if this payment method should skip the expired date validation requirement (credit card only)"},"allow_blank_date":{"type":"boolean","description":"`true` if this payment method should skip the expiration date validation requirement"},"eligible_for_card_updater":{"type":"boolean","description":"`true` if this payment method should be included in Account Updater"},"metadata":{"type":"object","description":"metadata key-value pairs (limit 25). Keys are limited to 50 characters. Values are limited to 500 characters and cannot contain compounding data types"}}}}},"payment_method_redact":{"type":"object","properties":{"transaction":{"type":"object","properties":{"remove_from_gateway":{"type":"string","description":"If the payment method is also stored at the gateway (e.g., for third party vaulting or offsite authorizations), include the token of the gateway here and it will be removed from the gateway as well as being redacted from Spreedly. This element is optional. If required, gateway_specific_fields can be used in tandem with remove_from_gateway. See your gateways guide for gateway specific field options and formatting."},"remove_personal_data":{"type":"boolean","description":"`true` if personally identifiable information should be removed from the payment method and related its transactions. This element is optional."}}}}},"recache":{"type":"object","properties":{"payment_method":{"type":"object","properties":{"credit_card":{"type":"object","properties":{"verification_value":{"type":"string","description":"The verification value (CVV/CVC) of the card"}}},"allow_blank_name":{"type":"boolean","description":"`true` if this payment method should skip the name validation requirement for Credit Cards"},"allow_expired_date":{"type":"boolean","description":"`true` if this payment method should skip the expired date validation requirement for Credit Cards"},"allow_blank_date":{"type":"boolean","description":"`true` if this payment method should skip the expiration date validation requirement for Credit Cards"}}}}},"delete_metadata":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"string"}}}},"payment_method_response":{"type":"object","properties":{"payment_method":{"$ref":"#/components/schemas/payment_method"}}},"payment_method_show_response":{"type":"object","properties":{"payment_method":{"allOf":[{"$ref":"#/components/schemas/payment_method"},{"type":"object","properties":{"network_token":{"$ref":"#/components/schemas/network_token"}}}]}}},"payment_method_retain_response":{"type":"object","properties":{"transaction":{"type":"object","description":"Root element","properties":{"transaction_type":{"type":"string","description":"The type of transaction, e.g., Authorization, Capture, Credit"},"token":{"type":"string","description":"The token uniquely identifying this transaction at Spreedly"},"succeeded":{"type":"boolean","description":"`true` if the transaction request was successfully executed, `false` otherwise"},"state":{"type":"string","description":"The current state of the transaction. Valid values are `succeeded`, `failed`, and `pending`"},"payment_method":{"$ref":"#/components/schemas/payment_method"},"network_tokenization":{"$ref":"#/components/schemas/network_tokenization"}}}}},"payment_method_redact_response":{"type":"object","properties":{"transaction":{"type":"object","description":"Root element","properties":{"transaction_type":{"type":"string","description":"The type of transaction, e.g., Authorization, Capture, Credit"},"token":{"type":"string","description":"The token uniquely identifying this transaction at Spreedly"},"succeeded":{"type":"boolean","description":"`true` if the transaction request was successfully executed, `false` otherwise"},"state":{"type":"string","description":"The current state of the transaction. Valid values are `succeeded`, `failed`, and `pending`"},"payment_method":{"$ref":"#/components/schemas/payment_method"}}}}},"payment_method_create_response":{"type":"object","properties":{"transaction":{"type":"object","description":"Root element","properties":{"token":{"type":"string","description":"The token uniquely identifying this transaction (not the created payment method) at Spreedly"},"succeeded":{"type":"boolean","description":"`true` if the transaction request was successfully executed, `false` otherwise"},"retained":{"type":"string","description":"if the payment method was set to be automatically retained on creation"},"payment_method":{"type":"object","description":"The payment method created as part of this transaction","properties":{"token":{"type":"string","description":"The token identifying the newly created payment method in the Spreedly vault"},"created_at":{"type":"string","description":"The time the payment method token was created"},"updated_at":{"type":"string","description":"The time the payment method token was last updated"},"email":{"type":"string","description":"The email address of the customer associated with this credit card"},"storage_state":{"type":"string","description":"The `storage_state` (retained, redacted, cached, used) of the payment method"},"test":{"type":"boolean","description":"`true` if this payment method is a test payment method and cannot be used against real gateways or receivers"},"metadata":{"type":"object","description":"metadata key-value pairs (limit 25). Keys are limited to 50 characters. Values are limited to 500 characters and cannot contain compounding data types"},"callback_url":{"type":"string","description":"The URL where Spreedly will attempt delivery of asynchronous results for 3DS and offsite transactions. Transaction results are posted in the format specified by `callback_format` if provided or XML if `callback_format` is not present or null. (default: `null`)"},"last_four_digits":{"type":"string","description":"The last four digits of the credit card number. This can be displayed to the user."},"first_six_digits":{"type":"string","description":"The first six digits of the credit card number. This can be displayed to the user."},"card_type":{"type":"string","description":"The [type](https://developer.spreedly.com/docs/supported-payment-methods), or brand, of the card. Please see the `card_type_mapping` function below for more detail."},"first_name":{"type":"string","description":"The first name of the cardholder"},"last_name":{"type":"string","description":"The last name of the cardholder"},"month":{"type":"string","description":"The expiration month"},"year":{"type":"string","description":"The expiration year"},"address1":{"type":"string","description":"The first line of the billing address"},"address2":{"type":"string","description":"The second line of the billing address"},"city":{"type":"string","description":"The city of the billing address"},"state":{"type":"string","description":"The state of the billing address"},"zip":{"type":"string","description":"The zip code of the billing address"},"country":{"type":"string","description":"The country code of the billing address"},"phone_number":{"type":"string","description":"The phone number of the billing address"},"company":{"type":"string","description":"The company of the cardholder"},"full_name":{"type":"string","description":"The full name of the cardholder."},"eligible_for_card_updater":{"type":"string","description":"`true` if this payment method should be included in Account Updater"},"shipping_address1":{"type":"string","description":"The first line of the shipping address"},"shipping_address2":{"type":"string","description":"The second line of the shipping address"},"shipping_city":{"type":"string","description":"The city of the shipping address"},"shipping_state":{"type":"string","description":"The state of the shipping address"},"shipping_zip":{"type":"string","description":"The zip code of the shipping address"},"shipping_country":{"type":"string","description":"The country code of the shipping address"},"issuer_identification_number":{"type":"string"

# --- truncated at 32 KB (489 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spreedly/refs/heads/main/openapi/spreedly-api-v1.json