Skip to content

      How to perform a payment

      This section shows how to perform a payment.

      Request body

      Request body

      {
          "initialAmount": 100,
          "currency": "EUR",
          "product": "paypal",
          "async": {
              "successUrl": "https://myshop.com/success/",
              "failureUrl": "https://myshop.com/fail/",
              "cancelUrl": "https://myshop.com/cancel/"
          },
          "merchantOrderId": "#0000000001",
          "description": "Order at myshop.com",
          "customer": "Customer-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }

      PayPal Debit Payment Body -JSON Format

      ParameterMandatoryDescription
      initialAmountmandatoryAmount as smallest currency unit e.g 100€ will be result in amount = 10000
      currencymandatoryCurrency code according to ISO 4217
      productmandatoryPayment product (method) to be used for this order
      asyncmandatory*Mandatory for asynchronous payment products like PayPal
      merchantOrderIdoptionalThe order id from your system/shop
      descriptionoptionalThe description from your system/shop of this order
      customermandatoryThe customer id which will be used to process this order

      PayPal Debit Payment Body - async - JSON Format

      ParameterMandatoryDescription
      successUrlmandatoryIn case of a successful order the customer will be redirected to the given URL
      failureUrlmandatoryIn case of a failed order the customer will be redirected to the given URL
      cancelUrlmandatoryIn case of a cancellation by the customer, the customer will be redirected to the given URL

      Find more information on potential body parameters in our API reference.

      Send request with curl

      Send the request via curl - line breaks for readability

      curl --user MerchantID:APIKey \
         -H "Content-Type: application/json" 
         -X POST \
         -d '{"initialAmount": 100,"currency": "EUR","product": "paypal","async": \
         { \
         "successUrl": "https://myshop.com/success/", \ 
         "failureUrl":     "https://myshop.com/fail/", \
         "cancelUrl": "https://myshop.com/cancel/"}, \
         "merchantOrderId":  "#0000000001", \
         "description": "Order at myshop.com", \
         "customer": "Customer-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \
         }' \
      
       https://apitest.payengine.de/v1/orders/debit/

      curl command - descriptions

      We will now touch on every part of this command.

      --user MerchantID:APIKey Curl Option for HTTP basic access authentication.

      -H "Content-Type: application/json" content-type header "application/json" for our API.

      -X POST We want the request to be a HTTP POST.

      -d '{"initialAmount": 100,"currency": "EUR","product": "paypal","async": {"successUrl": "https://myshop.com/success/","failureUrl": "https://myshop.com/fail/","cancelUrl": "https://myshop.com/cancel/"},"merchantOrderId": "#0000000001","description": "Order at myshop.com","customer": "Customer-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}' The body for our request in JSON format.

      https://apitest.payengine.de/v1/orders/debit/ The orders debit endpoint of our API (Test in this case).

      curl command - response

      If the Request was successful we should get a response that looks like this:

      Response

      {
          "createdAt": 1502092403541,
          "modifiedAt": 1502092403557,
          "merchantId": "Merchant-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "terms": null,
          "privacy": null,
          "orderId": "xxxxxxxxx",
          "merchantOrderId": "#0000000001",
          "paymentProviderTransactionId": null,
          "description": "Order at myshop.com",
          "statementDescription": null,
          "initialAmount": 100,
          "preauthorizedAmount": 0,
          "capturedAmount": 0,
          "refundedAmount": 0,
          "canceledAmount": 0,
          "currency": "EUR",
          "basket": [],
          "customer": {
              "createdAt": 1501757581860,
              "modifiedAt": 1501757581860,
              "email": "jane@doe.com",
              "merchantCustomerId": "xyz",
              "customerId": "Customer-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
              "addresses": [],
              "personas": [],
              "paymentInstruments": [
                  {
                      "paymentInstrumentId": "PaymentInstrument-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                      "merchantPaymentInstrumentId": null,
                      "attributes": null,
                      "encrypted": false,
                      "origin": "paypal",
                      "type": "paypal",
                      "recurring": false,
                      "createdAt": 1502092403535,
                      "modifiedAt": 1502092403535
                  }
              ]
          },
          "persona": null,
          "billingAddress": null,
          "shippingAddress": null,
          "ipAddress": null,
          "paymentInstrument": {
              "paymentInstrumentId": "PaymentInstrument-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
              "merchantPaymentInstrumentId": null,
              "attributes": null,
              "encrypted": false,
              "origin": "paypal",
              "type": "paypal",
              "recurring": false,
              "createdAt": 1502092403535,
              "modifiedAt": 1502092403535
          },
          "transactions": [
              {
                  "createdAt": 1502092403555,
                  "modifiedAt": 1502092403555,
                  "type": "DEBIT",
                  "transactionId": "DebitTransaction-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                  "description": "Order at myshop.com",
                  "initialAmount": 100,
                  "refundedAmount": 0,
                  "currency": "EUR",
                  "status": "PENDING",
                  "order": "xxxxxxxxx",
                  "parentTransaction": null,
                  "transactions": null,
                  "basket": []
              }
          ],
          "status": "OPEN",
          "channel": "ECOM",
          "source": null,
          "settled": null,
          "settlementDate": null,
          "allowedProducts": [],
          "product": "paypal",
          "transactionType": "DEBIT",
          "meta": null,
          "async": null,
          "redirectUrl": "https://apitest.payengine.de/order/paypal/1.0/redirect/Order-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }

      Find more information in our API reference.