PayPal process flow
If you prefer to test the integration before going Live, and you do not have PayPal Sandbox test account, you should create PayPal Sandbox test account as first step.
1. Login to https://developer.paypal.com/ and go to "Testing Tools" => "Sandbox Accounts"
2. Click "Create account" and choose "Business (Merchant Account)" & Germany as "Country / Region".
3. Choose "View/Edit account"
4. Take "Email ID" and "System Generated Password" and use them as Login/Pass for Sandbox on the next step.
In order to allow processing transactions on your behalf, corresponding permissions should be granted to
.
Permissions can be granted to under your PayPal account. Please use the following links to login into your PayPal account and follow the steps.
|
To complete merchant setup on side, you should send PayerID to
Merchant Services.
1. Login to https://developer.paypal.com/dashboard and go to "Testing tools" --> "Sandbox Accounts".
2. Select the appropriate Sandbox merchant account and notify Merchant Services about "Account ID".
PayerID can be found under your PayPal account by https://paypal.com/myaccount/settings/ , as follows. PayerID uniquely identifies merchant in PayPal. The identifier is the same for Sandbox and Production environments.
The client-side implementation of PayPal is realized using the PayPal JavaScript SDK.
Depending on your setup, you can use the following script or prepare you own, using the official PayPal JavaScript SDK documentation https://developer.paypal.com/sdk/js/.
While you are testing in sandbox, you can use |
|
The above piece of code contains the following line. In this line it will be possible to define which funding sources will be allowed in the web shop.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
The line corresponded to the following button. By default (using the above line) only PayPal button will be available.
If it is required to have PayPal Pay Later Button in addition to standard PayPal button, the button can be enabled by using parameter enable-funding like follows.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&enable-funding=paylater"></script>
As a result the following two buttons will appear.
Full list of values for disable-funding and enable-funding can be found by the link below.
https://developer.paypal.com/docs/regional/th/checkout/reference/customize-sdk/#components
The above piece of code contains the following line.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
offers 3 possible options for a payment.
Parameter intent in the above line must be in synch with these options.
If SALE option is used, parameters intent must be set to "capture" as below.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
If AUTHORIZE or ORDER option is used, parameters intent must be set to "authorize" as below.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=authorize"></script>
It is important to set proper value for parameter intent, otherwise an error appears.
The above piece of code for PayPal Button does not have any style-related parameters. This piece of code assumes default PayPal style for the button as follows.
PayPal allows to define different PayPal Button style by using parameters shape, color, layout and label. Full list of style-related parameters can be find by the following link.
https://developer.paypal.com/docs/checkout/advanced/style-guide/
Use the following URL and parameters to initiate a PayPal payment in the form:
|
With this URL supports two different PayPal methods: One the one hand you can offer PayPal quite normally as an additional payment method for the conclusion of a sale. Otherwise you can use PayPal Express Checkout Shortcut, which connects the customers from the shopping cart directly to PayPal, where they can then select their delivery and invoicing address. The customer saves having to re-enter address details and you, as the merchant, enjoy PayPal vendor protection.
also supports the separation of authorisation and capture for PayPal Express Checkout. You can set parameters via the
to control whether the amount on the customer's PayPal account should be blocked or captured immediately.
Notice: One of the following conditions must be fulfilled to enable you to benefit from PayPal seller protection. Either the customer uses PayPal Express Checkout and selects a delivery address which it has saved previously with PayPal, which transmits to your shop. Or your shop transmits the already known delivery address to PayPal. Seller protection applies only if the goods have been supplied to this specified address. There may be no more than 3 days between the authorisation of the amount in the customer's PayPal account and capture if you wish to benefit from seller protection.
therefore supports several alternatives for the processing of PayPal payments: we shall be happy to advise you about the implementation of PayPal.
Key | REST | Format | CND | Description | |
---|---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too. | |||
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment | ||
refnr | ns..30 | O | Merchant’s unique reference number | ||
n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit). If OrderDesc(n) is used, there must be valid: Amount=ItemTotal+TaxTotal+SHAmount. | |||
Currency | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table. Please note the global PayPal supported currencies at https://developer.paypal.com/api/rest/reference/currency-codes/. | ||
not used | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | ||
a..6 | O | Auto or Manual: determines whether the requested amount is settled immediately or at a later stage. Important Note: Please contact Computop Helpdesk for Manual, to discuss different possibilities of usage | |||
TxType | "payment": {"card": { "transactionType": "Order" }} | ans..5 | C | Obligatory for Capture=Manual: Transaction type with possible values Order or Auth. For initial Billing Agreement transaction (Billing Agreement creation) TxType=BAID. In case TxType=BAID, all parameters except the following are optional. RefNr MUST be unique for each Billing Agreement creation transaction.
| |
PayPalMethod | "payment": {"payPal": { "method": "..." }} | enum | O | The "shortcut" value selects the changed transaction procedure which takes the customer back to the shop for payment confirmation. You then need to call up the interface paypalcomplete.aspx to complete the sale. | |
RTF | not used | ans1 | O | Reserved for future use | |
OrderDesc | "order": {"description": "..."} | ans..127 | M | Description of purchased goods, unit prices etc. | |
OrderDesc(n) | "order": {"items": "..."} | ans..2048 | O | Customers shopping basket in the form: OrderDesc(n)=Name,Amount,Number,Quantity,Description,Tax OrderDesc2 to max. OrderDesc99 permissible For correct execution of displaying function all OrderDesc(n) Amounts must equal to the Paygate parameter Amount. | |
TaxTotal | "amount": {"taxTotal": ...} | n..10 | C | Mandatory, if +Tax is given in description of OrderDesc(n): Total amount of taxes of all single articles in the smallest currency unit (e.g. EUR Cent) = Sum(Tax*Number) | |
ItemTotal | "amount": {"itemTotal": ...} | n..10 | C | Mandatory, if +tax is given in description of OrderDesc(n): Gross amount of all single articles in the smallest currency unit (e.g. EUR Cent) = Sum(Amount*Number) | |
ShAmount | "amount": {"shippingTotal": ...} | n..10 | C | Shipping costs in the smallest currency unit (e.g. EUR Cent). Can be used only in case ShAmount <> 0 and connection with parameters ItemTotal and TaxTotal. | |
URLSuccess | "urls": {"success": "..."} | ans..256 | M | Complete URL which calls up Paygate if payment has been successful. The URL may be called up only via port 443. This URL may not contain parameters: In order to exchange values between Paygate and shop, please use the parameter UserData.
| |
URLFailure | "urls": {"failure": "..."} | ans..256 | M | Complete URL which calls up Paygate if payment has been unsuccessful. The URL may be called up only via port 443. This URL may not contain parameters: In order to exchange values between Paygate and shop, please use the parameter UserData.
| |
Response | not used | a7 | O | Status response sent by Paygate to URLSuccess and URLFailure, should be encrypted. For this purpose, transmit Response=encrypt parameter. | |
URLNotify | "urls": {"notify": "..."} | ans..256 | M | Complete URL which Paygate calls up in order to notify the shop about the payment result. The URL may be called up only via port 443. It may not contain parameters: Use the UserData parameter instead.
| |
UserData | "payment": {"userData": "..."} | ans..1024 | O | If specified at request, Paygate forwards the parameter with the payment result to the shop. | |
ReqId | "requestId": "..." | ans..32 | O | To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action. Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly. Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate. | |
Account | "payment": {"payPal": { "accountId": "..." }} | ans..128 | O | For managing multiple PayPal accounts, Merchant account: ID or e-Mail address for which the request should be submitted to PayPal | |
Language | "language": "..." | an2 | O | Language: AU, DE, FR, IT, GB, ES, US; default DE | |
FirstName | "billing": {"consumer": { "firstName": "..." }} | ans..50 | OC | (obligatory for USA and Canada): Either the first name only or first and second name if a company name is used as a delivery address. | |
LastName | "billing": {"consumer": { "lastName": "..." }} | ans..50 | OC | (obligatory for USA and Canada): Surname or name of the company of the delivery address | |
AddrStreet | "billing": {"addressInfo": { "addressLine1": { "street": "..." }}} | ans..100 | OC | (obligatory for USA and Canada): Street in the delivery address | |
AddrStreet2 | "billing": {"addressInfo": { "addressLine2": "..." }} | ans..100 | O | 2. Street name in the delivery address that contains additional information e.g. packing station or similar. In order to receive this as a response parameter, it needs to be activated separately by the Computop Helpdesk. | |
AddrCity | "billing": {"addressInfo": { "city": "..." }} | ans..40 | OC | (obligatory for USA and Canada): Town/city in the delivery address | |
AddrState | "billing": {"addressInfo": { "state": "..." }} | ans..40 | OC | (obligatory for USA and Canada): Federal state of the delivery address. The town submitted in AddrCity must be located in the given federal state, otherwise PayPal refused this payment. For possible values please refer to the PayPal-API-reference documentation. | |
AddrZip | "billing": {"addressInfo": { "postalCode": "..." }} | ans..20 | OC | (obligatory for USA and Canada): Postcode in the delivery address | |
AddrCountryCode | "billing": {"addressInfo": { "country": { "A2": "..." }}} | an2 | O | Country code of the delivery country | |
Phone | "billing": {"contactInfo": { "phone": "..." }} | n..20 | O | Telephone number | |
NoShipping | n1 | O | Handover NoShipping=1 prevents the delivery address registered with Paypal from being displayed. Computop Paygate also offers the option to permanently suppress the delivery address for you on your MID. Please note that the delivery address should only be suppressed in the case of digital goods, as the seller protection is also linked to this. Please contact the Computop Helpdesk for this. | ||
RiskEvaluation | ans..2048 | O | Array of key-value pair (base64-encoded). List of keys has to be agreed with PayPal (can be different for different merchants) before usage of parameter RiskEvaluation. Example:
| ||
PaymentUnit(n) | ans..2048 | O | In case of Multi-Seller Payment (Marketplace functionality) each PaymentUnit(n) is related to a separate Seller (merchant within the Marketplace) and contains JSON object (base64-encoded) with the following format. Example:
| ||
mode | an8 | O | If mode="redirect" is sent, it means that the merchant does not use PayPal Smart Button and Paygate should redirect the customer to PayPal. if mode is not sent (or sent with any other value except "redirect"), it means that the merchant uses PayPal Smart Button and Paygate will not redirect the customer to PayPal (redirection will be handled by PayPal Smart Button). |
Parameters for PayPal payments
|
Return parameters for URLSuccess, URLFailure and URLNotify with PayPal
Notice: The address parameters are always transmitted to the shop but are empty if no address data has been exchanged.
The PayPal "shortcut" method enables a changed transaction procedure which takes the customer back to the shop for payment confirmation. To complete this PayPal payment in the next step, use the following URL and parameters:
|
|
Parameters for PayPal payments with method "shortcut"
Response parameters for PayPal with method "shortcut"
For a PayPal payment the ORDER can be separated from the subsequent authorization and the following steps. Separate authorization is only possible after the order (TxType=Order) is completed.
For a separate authorization with PayPal, please use the following URL:
|
|
Parameters for PayPal authorization
|
Response parameters for PayPal authorization
To carry out a capture for PayPal via a Server-to-Server connection, please use the following URL:
|
Key | REST | Format | CND | Description |
---|---|---|---|---|
BasicAuth.Username | ans..30 | M | MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too. | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
not used | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | |
Amount | "amount": { "value": ...} | n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit). |
Currency | "amount": { "currency": "..."} | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table. Please note the global PayPal supported currencies at https://developer.paypal.com/api/rest/reference/currency-codes/. |
RefNr | "referenceNumber": "..." | ans..30 | O | Merchant reference number: here a separate reference number, e.g. an invoice number, can be transferred |
ReqId | "requestId": "..." | ans..32 | O | To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action. Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly. Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate. |
TID | "payment": {"payPal": { "generatedCaptureId": "..." }} | ans..17 | O | Unique PayPal-generated Capture ID. The value is required for a refund after several partial captures. Example: A merchant did 3 partial captures for an authorization. For each capture unique PayPal-generated Capture ID is returned in TID (e.g., TID=111, TID=222, TID=333). Then, a refund for second capture should be done. In this case the merchant needs to send TID=222 in refund request. |
CompleteType | "payment": {"payPal": { "completeType": "..." }} | ans..3 | O | If <YES> is transferred, the possible open order of PayPal is closed on capture. (Reason: a 115% capture is permissible on the part of PayPal. If a capture reached 100%, Paygate automatically sends a request to close the payment). |
Parameters for PayPal captures
Key | REST | Format | CND | Description |
---|---|---|---|---|
"merchantId": "..." | ans..30 | M | MerchantID, assigned by Computop | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. |
XID | "xId": "..." | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
Status | a..50 | M | OK (URLSuccess) or FAILED (URLFailure) | |
Description | "description": "..." | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! |
Code | "code": ... | n8 | M | Error code according to Paygate Response Codes (A4 Error codes) |
CodeExt | "externalErrorCode": ... | n..10 | O | Error code from PayPal if agreed with Computop Helpdesk |
Result parameters for PayPal captures
To carry out a credit with a reference transaction for PayPal, please use the following URL:
|
Key | REST | Format | CND | Description |
---|---|---|---|---|
BasicAuth.Username | ans..30 | M | MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too. | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment to be credited |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
not used | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | |
Amount | "amount": { "value": ...} | n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit). |
Currency | "amount": { "currency": "..."} | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table. Please note the global PayPal supported currencies at https://developer.paypal.com/api/rest/reference/currency-codes/. |
RefNr | "referenceNumber": "..." | ans..30 | O | Merchant reference number: here a separate reference number, e.g. an invoice number, can be transferred |
ReqId | "requestId": "..." | ans..32 | O | To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action. Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly. Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate. |
TID | "payment": {"payPal": { "generatedCaptureId": "..." }} | ans..17 | O | Unique PayPal-generated Capture ID. The value is required for a refund after several partial captures. Example: A merchant did 3 partial captures for an authorization. For each capture unique PayPal-generated Capture ID is returned in TID in capture response (e.g., TID=111, TID=222, TID=333). Then, a refund for second capture should be done. In this case the merchant needs to send TID=222 in refund request. |
Note | "reason": "..." | ans..768 | C | Explanatory text for recipient |
Subject | "payment": {"payPal": { "massPayEmailSubject": "..." }} | ans..255 | C | MassPay: E-Mail subject to recipient Notice: If you want to use the MassPay functionality, please contact the Computop Helpdesk to activate this function for you. |
Parameters for PayPal credits with reference transaction
Key | REST | Format | CND | Description |
---|---|---|---|---|
"merchantId": "..." | ans..30 | M | MerchantID, assigned by Computop | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. |
XID | "xId": "..." | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
Status | a..50 | M | OK (URLSuccess) or FAILED (URLFailure) | |
Description | "description": "..." | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! |
Code | "code": ... | n8 | M | Error code according to Paygate Response Codes (A4 Error codes) |
CodeExt | "externalErrorCode": ... | n..10 | O | Error code from PayPal if agreed with Computop Helpdesk |
FeeRefundAmount | "payment": {"feeAmount": ...} | n..10 | O | The refunded amount of the PayPal transaction fees. Required for part credit notes to prior partial captures. |
GrossRefundAmount | "payment": {"grossAmount": ...} | n..10 | O | Amount refunded to the buyer in this refund transaction. Required for part credit notes to prior partial captures. |
NetRefundAmount | "payment": {"netAmount": ...} | n..10 | O | Amount deducted from your PayPal account to make this refund. Required for part credit notes to prior partial captures. |
Response parameters for PayPal credits with reference transaction
In order to initiate a credit without reference transaction for PayPal payment, please use the following URL:
|
Key | REST | Format | CND | Description |
---|---|---|---|---|
BasicAuth.Username | ans..30 | M | MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too. | |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
refnr | "referenceNumber": "..." | ns..30 | O | Merchant’s unique reference number |
Amount | "amount": { "value": ...} | n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit). |
Currency | "amount": { "currency": "..."} | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table. Please note the global PayPal supported currencies at https://developer.paypal.com/api/rest/reference/currency-codes/. |
PayerID | ans..13 | O | Unique identification number of customer account at PayPal | |
ReqId | "requestId": "..." | ans..32 | O | To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action. Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly. Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate. |
Account | "payment": {"payPal": { "accountId": "..." }} | ans..128 | O | For managing multiple PayPal accounts, Merchant account: ID or e-Mail address for which the request should be submitted to PayPal |
Note | "reason": "..." | ans..768 | C | MassPay: Explanatory text for recipient If you want to use the MassPay functionality, please contact the Computop Helpdesk to activate this function for you. |
Subject | "payment": {"payPal": { "massPayEmailSubject": "..." }} | ans..255 | C | MassPay: E-Mail subject to recipient If you want to use the MassPay functionality, please contact the Computop Helpdesk to activate this function for you. |
Payer | ans..100 | O | MassPay: Email address of the purchaser If you want to use the MassPay functionality, please contact the Computop Helpdesk to activate this function for you. |
Parameters for PayPal credits without reference transaction
Key | REST | Format | CND | Description |
---|---|---|---|---|
"merchantId": "..." | ans..30 | M | MerchantID, assigned by Computop | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. |
XID | "xId": "..." | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
Status | a..50 | M | OK (URLSuccess) or FAILED (URLFailure) | |
Description | "description": "..." | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! |
Code | "code": ... | n8 | M | Error code according to Paygate Response Codes (A4 Error codes) |
CodeExt | "externalErrorCode": ... | n..10 | O | Error code from PayPal if agreed with Computop Helpdesk |
FeeRefundAmount | "payment": {"feeAmount": ...} | n..10 | O | The refunded amount of the PayPal transaction fees. Required for part credit notes to prior partial captures. |
GrossRefundAmount | "payment": {"grossAmount": ...} | n..10 | O | Amount refunded to the buyer in this refund transaction. Required for part credit notes to prior partial captures. |
NetRefundAmount | "payment": {"netAmount": ...} | n..10 | O | Amount deducted from your PayPal account to make this refund. Required for part credit notes to prior partial captures. |
Response parameters for PayPal credits without reference transaction
In order to cancel a transaction with PayPal, please use the following URL:
|
Key | REST | Format | CND | Description |
---|---|---|---|---|
BasicAuth.Username | ans..30 | M | MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too. | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment to be reversed |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
not used | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | |
Amount | "amount": { "value": ...} | n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit). |
Currency | "amount": { "currency": "..."} | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table. Please note the global PayPal supported currencies at https://developer.paypal.com/api/rest/reference/currency-codes/. |
ReqId | "requestId": "..." | ans..32 | O | To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action. Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly. Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate. |
Parameters for PayPal reversals
Key | REST | Format | CND | Description |
---|---|---|---|---|
"merchantId": "..." | ans..30 | M | MerchantID, assigned by Computop | |
PayID | "paymentId": "..." | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. |
XID | "xId": "..." | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate |
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment |
Status | a..50 | M | OK (URLSuccess) or FAILED (URLFailure) | |
Description | "description": "..." | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! |
Code | "code": ... | n8 | M | Error code according to Paygate Response Codes (A4 Error codes) |
CodeExt | "externalErrorCode": ... | n..10 | O | Error code from PayPal if agreed with Computop Helpdesk |
Result parameters for PayPal reversals
The process contains two steps.
Billing Agreement Creation (initial Billing Agreement transaction)
Billing Agreement Usage
In order to initiate a PayPal subscription payment, please use the following URL:
|
|
Parameters for PayPal Reference Transactions
|
Result parameters for PayPal Reference Transactions
This section describes the parameters which must be transferred within the data set (Record) for executing a PayPal payment and which information can be found within the response file about the payment status.
For Batch calls there must be considered batch versions, from which optional parameters depend. All version designations starting with „2.“ pertain calls for a group of enterprises. That means within a batch file for a particular MerchantID can be transferred transactions for other merchants with a separate Sub-MID.
Following table gives an overview of all batch versions that are possible for a specific action and their specialities:
|
Description of the possible batch versions
The structure for a PayPal payment within a Batch file to be submitted is the following:
|
Example for Master MID function:
|
Notice: In Version 1.4 it is also possible to transfer CompleteType together with a Capture action:
PAYPAL,Capture,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>(,<CompleteType>,<TID>)
|
Description of fields within the record for Batch files
The record area within the response file for Batch transactions looks as follows:
|
|
Description of result parameters within the record for Batch files