# Create a payment instrument

Creates a payment instrument.
If the payment card, bank account, or alternative payment instrument already exists it is updated.

Endpoint: POST /payment-instruments
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `token` (string, required)
  ID of the payment token.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `method` (string, required)
  Method of the payment instrument.
  Enum: "payment-card"
- `pan` (string, required)
  Primary Account Number (PAN) of the payment card.
- `expYear` (integer, required)
  Expiration year of the payment card.
- `expMonth` (integer, required)
  Expiration month of the payment card.
- `cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `billingAddress` (object, required)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `riskMetadata` (object)
  Risk metadata used for 3D Secure and risk scoring.
- `riskMetadata.ipAddress` (string | null)
  Customer's IP address.
  Example: 93.92.91.90
- `riskMetadata.fingerprint` (string | null)
  Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.
  Example: pIUt3xbgX3l9g3YDiLbx
- `riskMetadata.httpHeaders` (any)
- `riskMetadata.browserData` (object | null)
  Browser data used for 3D Secure and risk scoring.
- `riskMetadata.browserData.colorDepth` (integer, required)
  Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property.
  Example: 24
- `riskMetadata.browserData.isJavaEnabled` (boolean, required)
  Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property.
- `riskMetadata.browserData.language` (string, required)
  Browser language settings. This value is obtained from the `navigator.language` property.
  Example: en-US
- `riskMetadata.browserData.screenWidth` (integer, required)
  Width of the browser screen. This value is obtained from the `screen.width` property.
  Example: 1920
- `riskMetadata.browserData.screenHeight` (integer, required)
  Height of the browser screen. This value is obtained from the `screen.height` property.
  Example: 1080
- `riskMetadata.browserData.timeZoneOffset` (integer, required)
  Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property.
  Example: 300
- `riskMetadata.browserData.isAdBlockEnabled` (boolean | null)
  Specifies if the usage of ad block has been detected in the browser.
- `riskMetadata.extraData` (object | null)
  Third-party data used for risk scoring.
- `riskMetadata.extraData.kountFraudSessionId` (string | null)
  Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
  Example: abcdefg12345abababab123456789012
- `riskMetadata.extraData.payPalMerchantSessionId` (string | null)
  PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowa
- `riskMetadata.extraData.threatMetrixSessionId` (string | null)
  Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `accountNumberType` (string, required)
  Type of the customer's bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "IBAN"
- `accountNumber` (string, required)
  Customer's bank account number. Detailed information on all ISO 13616-compliant national IBAN formats is available in the [SWIFT IBAN Registry](https://www.swift.com/standards/data-standards/iban).
  Example: DE89370400440532013000
- `routingNumber` (string, required)
  Bank routing number.
  Example: 123456789
- `accountType` (string, required)
  Type of the bank account.
  Enum: "checking", "savings", "other"
- `bankName` (string)
  Name of the bank.
- `bic` (string)
  Bank Identifier Code (BIC).
  Example: DEUTDE8LXXX
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `riskMetadata` (any)

## Response 201 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## Response 303 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## Response 401 fields

- `status` (integer)
  HTTP status code.
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

## Response 403 fields

- `status` (integer)
  HTTP status code.
- `error` (string)
  Message that describes why the request is forbidden. Most responses use a descriptive message, such as `Not allowed to change security settings`. If the organization requires multi-factor authentication (MFA) and MFA verification has not been completed for the session, this value is `mfa_required`. If the request sets `requireMfa` to `true` and MFA verification has not been completed for the session, this value is `mfa_required_for_caller`. If the organization restricts access to a list of IP addresses and the request comes from an IP address that is not in the list, this value is `ip_not_allowed`.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

## Response 422 fields

- `status` (integer)
  HTTP status code.
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
- `invalidFields` (array)
  Invalid field details.
  Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}]
- `invalidFields.field` (string)
  Name of the field. Dot notation is used for nested object field names.
- `invalidFields.message` (string)
  Message field.

## Response 429 fields

- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
  Example: about:blank
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
  Example: Rate Limit Exceeded
- `status` (integer)
  HTTP status code.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
  Example: A request cannot be executed because the user has sent too many requests within a certain period of time
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
