On this page
No Headings
Last updated: June 18, 2026
Important: NVP/SOAP is a legacy integration method. We accept new integrations and support existing integrations, but there are newer solutions. If you're starting an integration, we recommend our latest solutions.
Processes a payment from a buyer's account, which is identified by a previous transaction.
| Field | Description |
|---|---|
ReferenceID | xs:string(Required) A valid transaction ID from a previous purchase, such as a credit card charge using the DoDirectPaymentAPI, or a valid billing agreement ID. Billing agreements are valid until the agreement is canceled by the buyer; whereas, transaction IDs are valid for 730 days from the transaction date. |
PaymentAction | xs:string(Required) How you want to obtain payment. It is one of the following values:
|
PaymentDetails | ebl:PaymentDetailsType(Required) Information about the payment. |
IPAddress | xs:string(Optional) IP address of the buyer's browser. Supports IPv4, IPv6, and IPv4-mapped IPv6. IPv6 and IPv4-mapped IPv6 can be zero compressed. Important: PayPal highly recommends passing the buyer's IP address to detect possible fraud.
|
RiskSessionCorrelationID | xs:string(Optional) The ID of the risk session for correlation purposes. |
MerchantSessionId | xs:string(Optional) Your buyer session identification token. Note: PayPal records this optional session identification token as an additional means to detect possible fraud. |
ReturnFMFDetails | xs:int(Optional) Flag to indicate whether you want the results returned by Fraud Management Filters. By default, you do not receive this information. Value is:
|
SoftDescriptor | (Optional) Information that is usually displayed in the account holder's statement, for example, <Your-Not-For-Profit> <State>, <Your-Not-For-Profit> <Branch-Name>, <Your-Website> dues or <Your-Website> list fee.Character length and limitations: 23 alphanumeric characters, can include the special characters dash ( -) and dot (.) only. Asterisks (*) are NOT permitted. If it includes a space character ( ), enclose the "<Soft-Descriptor>" value in double quotes. Note: For US Website Payments Pro AMEX cards only and only for merchants passing dynamic soft descriptors, the dynamic soft descriptors for AMEX cards are only guaranteed once the transaction settles. This means that during the authorization time the card issuing bank might show their customer the registered business or legal name for the merchant versus the dynamic soft descriptor passed on a per API transaction. |
SoftDescriptorCity | xs:string(Optional) A unique phone number, email address or URL, which is displayed on the account holder's statement. PayPal recommends passing a toll-free phone number because, typically, this is the easiest way for a buyer to contact the seller in the case of an inquiry. Character length and limitations: 13 characters including special characters, such as, space, !, ", #, $, %, &, ', (, ), +, -,*, /, :, ;, <, =, >, ?, @, comma and period.If it includes the space character ( ), enclose the "<Soft-Descriptor-City>" value in double quotes. Note: Underscore ( _) is an illegal character for this field. If it is passed, then it will be removed leaving the remaining characters in the same order. For example, New_York changes to NewYork. |
PaymentReason | ns:PaymentReasonTypeIndicates the type of transaction. Value is:
|
| Field | Description |
|---|---|
Name | xs:stringPerson's name associated with this shipping address. It is required if using a shipping address. Character length and limitations: 32 double-byte characters |
Street1 | xs:stringFirst street address. It is required if using a shipping address. Character length and limitations: 100 single-byte characters |
Street2 | xs:string(Optional) Second street address. Character length and limitations: 100 single-byte characters |
CityName | xs:stringName of city. It is required if using a shipping address. Character length and limitations: 40 single-byte characters |
StateOrProvince | xs:stringState or province. It is required for transactions only if the address is in one of the following countries: Argentina, Brazil, Canada, China, Indonesia, India, Japan, Mexico, Thailand or USA. See the list of PayPal State codes. Character length and limitations: 40 single-byte characters |
PostalCode | xs:stringU.S. ZIP code or other country-specific postal code. It is required if using a U.S. shipping address. Character length and limitations: 20 single-byte characters |
Country | ebl:CountryCodeTypeCountry code. It is required if using a shipping address. Character length and limitations: 2 single-byte characters |
Phone | xs:string(Optional) Phone number. Character length and limitations: 20 single-byte characters |
| Field | Description |
|---|---|
OrderTotal | ebl:BasicAmountType(Required) The total cost of the transaction to the buyer. If shipping cost and tax charges are known, include them in this value. If not, this value should be the current subtotal of the order. If the transaction includes one or more one-time purchases, this field must be equal to the sum of the purchases. Set this field to 0 if the transaction does not include a one-time purchase such as when you set up a billing agreement for a recurring payment that is not immediately charged. When the field is set to 0, purchase-specific fields are ignored. Note: You must set the currencyID attribute to one of the 3-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
ItemTotal | ebl:BasicAmountType(Optional) Sum of cost of all items in this order. Note: You must set the currencyIDattribute to one of the three-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
ShippingTotal | ebl:BasicAmountType(Optional) Total shipping costs for this order. Note: You must set the currencyIDattribute to one of the 3-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
InsuranceTotal | ebl:BasicAmountType(Optional) Total shipping insurance costs for this order. The value must be non-negative currency amount or null if you offer insurance options. Note: You must set the currencyID attribute to one of the 3-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
ShippingDiscount | ebl:BasicAmountType(Optional) Shipping discount for this order, specified as a negative number. Note: You must set the currencyID attribute to one of the 3-character currency codes for any of the supported PayPal currencies. .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. See the currency codes page for details. |
HandlingTotal | ebl:BasicAmountType(Optional) Total handling costs for this order. Note: You must set the currencyID attribute to one of the 3-character Character length and limitations:Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or theper transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
TaxTotal | ebl:BasicAmountType(Optional) Sum of tax for all items in this order. Note: You must set the currencyID attribute to one of the 3-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
OrderDescription | xs:string(Optional) Description of items the buyer is purchasing. Note: The value you specify is available only if the transaction includes a purchase. This field is ignored if you set up a billing agreement for a recurring payment that is not immediately charged. |
Custom | xs:string(Optional) A free-form field for your own use. Note: The value you specify is available only if the transaction includes a purchase. This field is ignored if you set up a billing agreement for a recurring payment that is not immediately charged. |
InvoiceID | xs:string(Optional) Your own invoice or tracking number. Note: PayPal recommends using the InvoiceID field to associate transactions with your internal tracking IDs or invoice numbers; populating the invoice ID field will help you pull transaction information at a later date using only your internal ID. Important: The value you specify is available only if the transaction includes a purchase. This field is ignored if you set up a billing agreement for a recurring payment that is not immediately charged. |
ButtonSource | xs:string(Optional) An identification code for use by third-party applications to identify transactions. Character length and limitations: 32 single-byte alphanumeric characters |
NotifyURL | xs:string(Optional) Your URL for receiving Instant Payment Notification (IPN) about this transaction. If you do not specify this value in the request, the notification URL from your Merchant Profile is used, if one exists. Character length and limitations: 2,048 single-byte alphanumeric characters |
ShipToAddress | ns:AddressType(Optional) Address the order is shipped to. |
PaymentDetailsItem | ebl:PaymentDetailsItemType(Optional) Details about each individual item included in the order. |
Recurring | ns:RecurringFlagType(Optional) Flag to indicate a recurring transaction. Value is:
Note: To pass Y in this field, you must have established a billing agreement with the buyer specifying the amount, frequency, and duration of the recurring payment. |
PaymentCategoryType | ebl:PaymentCategoryType(Optional) Category of a payment. Value is: InternationalShippingLocalDelivery |
| Field | Description |
|---|---|
ItemCategory | ns:ItemCategoryTypeIndicates whether the item is digital or physical. For digital goods, this field is required and you must set it to Digital to get the best rates. Value is:
|
Name | xs:stringItem name. This field is required when you pass a value for ItemCategory.Character length and limitations: 127 single-byte characters |
Description | xs:string(Optional) Item description. This field is available since version 53.0. Character length and limitations: 127 single-byte characters |
Amount | ebl:BasicAmountTypeCost of item. This field is required when you pass a value for ItemCategory. Note: You must set the currencyID attribute to one of the 3-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
Number | xs:string(Optional) Item number. Character length and limitations: 127 single-byte characters |
Quantity | xs:integerItem quantity. This field is required when you pass a value for ItemCategory.Character length and limitations: Any positive integer |
Tax | ebl:BasicAmountType(Optional) Item sales tax. Note: You must set the currencyID attribute to one of the 3-character currency codes for any of the supported PayPal currencies. Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
PAYMENTINITIATOR |
|
PAYMENTCATEGORY |
|
CARDONFILE |
|
PREVIOUSTRANSACTIONREFERENCE | PayPal transaction ID previously used to charge the buyer. Shows payment processors that you have established a contract with the buyer. |
PREVIOUSNETWORKTRANSACTIONREFERENCE |
|
| Field | Description |
|---|---|
ItemNumber | xs:string(Optional) Auction item number. Character length: 765 single-byte characters |
AuctionTransaction Id | xs:string(Optional) Auction transaction identification number. Character length: 255 single-byte characters |
OrderID | xs:string(Optional) Auction order identification number. Character length: 64 single-byte characters |
| Field | Description |
|---|---|
CreditCardType | ebl:CreditCardType(Optional) Type of credit card. Is one of the following values:
Maestro, Mastercard, Discover, and Visa are allowable. For Canada, only Mastercard and Visa are allowable. Interac debit cards are not supported. Note: If the credit card type is Maestro, you must set the currencyId to GBP. In addition, you must specify either StartMonth and StartYear or IssueNumber. |
CreditCardNumber | xs:string(Optional) Credit card number. Character length and limitations: Numeric characters only with no spaces or punctuation. The string must conform with modulo and length required by each credit card type. |
ExpMonth | xs:int(Optional) Credit card expiration month. Character length and limitations: 2 single-byte numeric characters, including leading zero |
ExpYear | xs:int(Optional) Credit card expiration year. Character length and limitations: 4 single-byte numeric characters |
CVV2 | xs:string(Optional) Card Verification Value, version 2. To comply with credit card processing regulations, you must not store this value after a transaction has been completed. Character length and limitations: For Visa, Mastercard, and Discover, the value is exactly 3 digits. For American Express, the value is exactly 4 digits. |
CardOwner | ns:PayerInfoType(Optional) Details about the owner of the credit card. |
StartMonth | xs:int(Optional) Month that Maestro card was issued. Character length and limitations: 2-digit, zero-filled if necessary |
StartYear | xs:int(Optional) Year that Maestro card was issued. Character length and limitations: 4 digits |
IssueNumber | xs:string(Optional) Issue number of Maestro card. Character length and limitations: 2 numeric digits maximum. |
| Field | Description |
|---|---|
Salutation | xs:string(Optional) Buyer's salutation. Character length and limitations: 20 single-byte characters |
FirstName | ebl:PersonNameType(Optional) Buyer's first name. Character length and limitations: 64 double-byte characters |
MiddleName | ebl:NameUser(Optional) Buyer's middle name. Character length and limitations: 64 double-byte characters |
LastName | ebl:NameType(Optional) Buyer's last name. Character length and limitations: 64 double-byte characters |
Suffix | ebl:SuffixType(Optional) Buyer's suffix. Character length and limitations: 12 single-byte characters |
| Field | Description |
|---|---|
PaymentInfo | ns:PaymentInfoTypeInformation about the payment such as the transaction ID, whether the payment is instant or delayed, and the settlement amount. |
AVSCode | xs:stringReturned only for Direct Credit Card transactions. Address Verification System response code. Character limit: 1 single-byte alphanumeric character |
CVV2Code | xs:stringReturned only for Direct Credit Card transactions. Result of the CVV2 check by PayPal. |
BillingAgreementID | xs:stringIdentification number of the billing agreement. When the buyer approves the billing agreement, it becomes valid and remains valid until it is canceled by the buyer. Note: For reference transactions, you can pass a billing agreement ID in the ReferenceID request field; also, a billing agreement ID is returned in the transaction response when the transaction referenced is a billing agreement. |
FMFDetails | ebl:FMFDetailsTypeFraud filter details. |
PaymentAdviceCode | xs:stringA processor response code typically returned on declined Website Payments Pro recurring transactions. Its purpose is to provide merchants with information and specific instructions on how to handle the decline. It is the merchant's responsibility to follow the instructions provided in order to avoid chargebacks. For details on the meanings of these codes, see AVS, CVV2, and payment advice response codes. Note: If a recurring transaction is declined with a returned PaymentAdviceCode value of 03 or21, it is the merchant's responsibility to stop this recurring payment. These payment advice codes indicate that either the account was closed, fraud was involved, or the card holder has asked their bank to stop this payment for another reason. Even if a reattempted transaction is successful, it will likely result in a chargeback. |
| Field | Description |
|---|---|
TransactionID | xs:stringUnique transaction ID of the payment. Character length and limitations: 17 characters. Orders transactions have 19 characters. |
ParentTransactionID | xs:stringParent or related transaction identification number. This value in this field is for the following transaction types:
|
ReceiptID | xs:stringReceipt identification number Character length and limitations: 16 digits in xxxx-xxxx-xxxx-xxxx format |
TransactionType | ns:PaymentTransactionCodeTypeThe type of transaction. Value is:
|
PaymentType | ebl:PaymentCodeTypeIndicates whether the payment is instant or delayed. It only applies to Express Checkout reference transactions and is not applicable to direct credit card reference transactions. Value is:
|
PaymentDate | xs:dateTimeDate and time stamp of the payment. Character length and limitations: Date and time are in UTC/GMT format. For example, 2013-08-24T05:38:48Z. |
GrossAmount | ebl:BasicAmountTypeThe final amount charged, including any shipping and taxes from your Merchant Profile. Character length and limitations: Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page. |
FeeAmount | ebl:BasicAmountTypePayPal fee amount charged for the transaction. Character length and limitations: Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
SettleAmount | ebl:BasicAmountTypeAmount deposited in your PayPal account after a currency conversion. Character length and limitations: Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page.` |
TaxAmount | ebl:BasicAmountTypeTax charged on the transaction. Character length and limitations: Value is typically a positive number that cannot exceed nine (9) digits in SOAP request/response for USD, CLP, or JPY or the per transaction limit for the currency. It includes no currency symbol. Most currencies require two decimal places. The decimal separator must be a period ( .), and the optional thousands separator must be a comma (,). Some currencies do not allow decimals. For details, see the currency codes page. |
ExchangeRate | xs:stringExchange rate if a currency conversion occurred. Relevant only if your are billing in their non-primary currency. If the buyer chooses to pay with a currency other than the non-primary currency, the conversion occurs in the buyer's account. Character length and limitations: Decimal value that does not exceed 17 characters, including decimal point |
PaymentStatus | ebl:PaymentStatusCodeTypeStatus of the payment. Value is:
|
PendingReason | ebl:PendingStatusCodeTypeThe reason the payment is pending. Value is:
Note: PendingReason is returned in the response only if PaymentStatus is Pending. |
ReasonCode | ebl:ReasonCodeTypeThe reason for a reversal if the transaction type is reversal. Value is:
|
ProtectionEligibility | xs:stringPrior to version 64.4, the kind of seller protection in force for the transaction. Value is:
|
ProtectionEligibilityType | xs:stringSince version 64.4, the kind of seller protection in force for the transaction.It is one or more of the following values:
Note: If more than one of these values is returned in this field, they will be returned in a comma-delimited string; for example, ItemNotReceivedEligible,UnauthorizedPaymentEligible. |
StoreId | xs:stringStoreId as entered in the transaction |
TerminalId | xs:stringTerminalId as entered in the transaction |
InstrumentDetails | ns:InstrumentDetailsTypeType of the payment instrument. |
| Field | Description |
|---|---|
InstrumentCategory | xs:stringReturns the category of the instrument only when it is promotional. Value is: 1 represents PayPal Credit |
InstrumentID | xs:stringReserved for future use. Returns an instrument ID (issued by the external party) corresponding to the funding source used in the payment. |
| Field | Description |
|---|---|
AcceptFilters | xs:RiskFilterListTypeList of filters that recommend acceptance of the payment. |
DenyFilters | xs:RiskFilterListTypeList of filters that recommend denial of the payment. |
PendingFilters | xs:RiskFilterListTypeList of filters that caused the payment to become pending. |
ReportsFilters | xs:RiskFilterListTypeList of filters that caused the payment to become flagged. |
| Field | Description |
|---|---|
ID | xs:intFilter ID. Value is:
|
Name | xs:stringFilter name. |
Description | xs:stringFilter description. |
The following fields are deprecated. Replacement fields are noted when available.
| Deprecated field | Replacement field | Since version/date |
|---|---|---|
REQCONFIRMSHIPPING | No replacement. Whether you require that the buyer's shipping address on file with PayPal be a confirmed address. You must have permission from PayPal to not require a confirmed address. Value is:
Note: Setting this field overrides the setting you have specified in your Merchant Account Profile. | September 2016 |