Pay by Link - APIs

You can use our Pay by Link APIs to create your custom flows to personalize the digital journey of your customers.

Advantages of Geidea's Pay by Link APIs

AdvantageDescription
PersonalizationThe APIs empower you to tailor the digital user experience and equip you with robust tools for monitoring payment links.
ControlTake full command of the payment process using our Pay by Link APIs. They offer a multitude of capabilities, including configuring accepted payment methods, customizing invoices to reflect your brand identity, sending reminders, and more.

๐Ÿ“˜

Please check out the prerequisites section before beginning your integration!

List of APIs

API ReferenceDescription
Create Payment LinkCreate a new payment link.
Update Payment LinkUpdate a payment link that has been created and not paid.
Delete Payment LinkDelete a payment link that has been issued.
Fetch Payment Link DetailsAPI to view Payment Link details by providing the Payment Link id
Fetch All or Search Payment LinksThis API helps you retrieve all payment links based on some filter criteria. You can use this API to search among payment links created by you.
Send Payment Link by e-mailThis API helps you send the payment link to your customer to the email used in the Create Payment Intent API call
Send Payment Link by SMSThis API helps you send the payment link to your customer as an SMS to the phone number used in the Create Payment Intent API call

Creating a Payment Link

Step 1: Creating a Payment Intent

You can create a Payment Link by calling the Create Payment Intent API.

๐Ÿ“˜

A payment intent is a contractual agreement between a customer and a merchant to finalize a transaction. It encompasses essential details like the payment amount and currency. Geidea Payment Gateway utilizes payment intents to authorize and process payments, particularly in online marketplaces and subscription services. They ensure secure payment handling and protect customers from unauthorized charges.

To initiate a Create Payment Link API call, you will need to provide the following required fields along with the payload of the API.

ParameterDatatypeDescriptionMandatory
amountdoubleThe total amount for the transaction. The amount must be greater than 0.01. Must not have more than 2 digits after the decimal point.Yes
currencystringCurrency of the order for which the authentication is initiated. Please follow ISO 4217 alpha code standards for the currency code. The currency code must be 3 characters in length. The currencies must be limited to the list configured for your merchant account.Yes
callbackUrlstringThis callback is a plain HTTP POST request to a merchant-defined URL endpoint to receive the response payload after a transaction is successful or failed.No
customerobjectDetails of the customer for whom the payment link is being generatedYes
customer.emailstringEmail of customer. Either email or phoneNumber must be present.Conditional
customer.namestringCustomer nameYes
customer.phoneCountryCodestringCountry code of customer's phone number eg: "+971". If phoneNumber is passed, phoneCountryCode must be passedConditional
customer.phoneNumberstringCustomer's phone number eg: "511111111". If phoneCountryCode is passed, phoneNumber must be passed.Conditional
eInvoiceDetailsobjectDetails of the eInvoice that includes item details and price breakdownYes
eInvoiceDetails.eInvoiceItemsobjectList of e-Invoice itemsYes
eInvoiceDetails.eInvoiceItems.pricedoubleItem PriceYes
eInvoiceDetails.eInvoiceItems.quantityintegerQuantity of itemYes
eInvoiceDetails.eInvoiceItems.descriptionstringItem description. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.eInvoiceItemIdstringe-Invoice item IDNo
eInvoiceDetails.eInvoiceItems.itemDiscountTypestringType of discount applied on item. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.eInvoiceItems.taxTypestringType of tax levied on item. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.eInvoiceItems.totaldoubleTotal price including tax levied. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity]Yes
eInvoiceDetails.eInvoiceItems.priceWithDiscountdoubleItem price after discount is applied. If not set in request, it is set to value of eInvoiceItems.price automatically and the value is returned in responseNo
eInvoiceDetails.eInvoiceItems.priceTaxdoubleTax on Item Price. If not set in request, it is set to zero automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.priceTotaldoubleTotal Price inclusive of Tax. If not set in request, it is set to value of eInvoiceItems.price automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.skustringItem SKU. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.itemDiscountdoubleDiscount applied on item. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.taxdoubleTax on item. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.totalWithoutTaxdoubleTotal price of item without tax. If not set in request, it is set to value of amount automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.totalTaxdoubleTax for the item. If not set in request, it is set to zero automatically and the value is returned in response.No
eInvoiceDetails.subtotal doubleAmount for which payment link is created. Amount must be greater than 0.01. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity]Yes
eInvoiceDetails.grandTotal doubleGrand Total. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity]. Must be same as amount.Yes
eInvoiceDetails.subtotalWithoutTax doubleSubtotal exclusive of tax. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity] if passed. If not set in request, it is set to [eInvoiceItems.price * eInvoiceItems.quantity] value automatically and the value is returned in response.No
eInvoiceDetails.subtotalTaxdoubleSubtotal tax. If not set in request, it is set to zero automatically and the value is returned in responseNo
eInvoiceDetails.extraChargesTypestringType of extra charges levied. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.invoiceDiscountTypestringType of discount applied on invoice. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.typestringType of eInvoice. If not set in request, it is set to "Detailed" automatically and the value is returned in response.No
eInvoiceDetails.collectCustomersBillingShippingAddressbooleanFlag indicating to capture Customer's billing and shipping addresses. If not set in request, it is set to false automatically and the value is returned in responseNo
eInvoiceDetails.preAuthorizeAmountbooleanFlag indicating whether to preauthorize the amount. If not set in request, it is set to false automatically and the value is returned in response.No
eInvoiceDetails.extraChargesdoubleExtra charges levied. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.chargeDescriptionstringDescription of charge levied. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.merchantReferenceIdstringThe merchant account identifier for which the payment link is created.No
eInvoiceDetails.invoiceDiscountdoubleDiscount applied on invoice. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.languagestringLanguage to be displayed in Payment Page. If not set in request, it is set to "EN" automatically and the value is returned in response.No

You can find a complete list of parameters that can be used with the Create Payment intent API here.

Below is an example of executing a Create payment intent call for a payment of 123.21 EGP with the mandatory parameters.

curl --request POST \
     --url https://api.merchant.geidea.net/payment-intent/api/v1/direct/eInvoice \
     --header 'accept: application/json' \
     --header 'authorization: Basic YTA4N2Y0Y2EtOTg5MC00MDdiLTljMmYtNzYzMDgzNmNjMDIwOjI2ZDMxOTE3LTcxNWUtNDhhYy1iMDcyLWRhOTczODAxNmFmNQ==' \
     --header 'content-type: application/json' \
     --data '
{
  "amount": 20,
  "currency": "SAR",
  "customer": {
    "name": "John",
    "email": "[email protected]",
    "phoneCountryCode": "+20",
    "phoneNumber": "8003030083"
  },
  "eInvoiceDetails": {
    "subtotal": 20,
    "grandTotal": 20,
    "extraChargesType": "Amount",
    "invoiceDiscountType": "Amount",
    "eInvoiceItems": [
      {
        "eInvoiceItemId": "17e95202-d151-43ff-d6af-08db4614f0bb",
        "description": "Subscription for tech",
        "price": 10,
        "quantity": 2,
        "itemDiscountType": "Amount",
        "taxType": "Amount",
        "total": 20,
        "priceWithDiscount": 10,
        "priceTax": 0,
        "priceTotal": 10,
        "sku": "1245",
        "itemDiscount": 0,
        "tax": 0,
        "totalWithoutTax": 20,
        "totalTax": 0
      }
    ],
    "callbackurl": "https://webhook.site/eb350004-1c84-48ef-8436-55c5a734cce4",
    "language": "EN",
    "invoiceDiscount": 0,
    "merchantReferenceId": "ref123",
    "chargeDescription": "charge amount",
    "extraCharges": 0,
    "subtotalWithoutTax": 20,
    "preAuthorizeAmount": false,
    "collectCustomersBillingShippingAddress": false,
    "type": "Detailed",
    "subtotalTax": 0
  },
  "expiryDate": "2024-05-10",
  "activationDate": "2024-03-18"
}
'
{
  "paymentIntent": {
    "link": "https://merchant.geidea.net/payByLink/GeideaGatewayKSA/w23-ctb-8y9-78o",
    "customer": {
      "customerId": "938e6122-c42a-4ee1-4634-08dc400e9226",
      "email": "[email protected]",
      "phoneNumber": "8003030083",
      "phoneCountryCode": "+20",
      "name": "John",
      "updatedBy": null,
      "updatedDate": "2024-03-18T12:36:20.6459781Z",
      "addresses": [],
      "customValue": null
    },
    "eInvoiceDetails": {
      "type": "Detailed",
      "collectCustomersBillingShippingAddress": false,
      "preAuthorizeAmount": false,
      "subtotalWithoutTax": 20,
      "subtotalTax": 0,
      "subtotal": 20,
      "grandTotal": 20,
      "extraCharges": 0,
      "extraChargesType": "Amount",
      "extraChargesLabel": null,
      "chargeDescription": "charge amount",
      "merchantReferenceId": "ref123",
      "invoiceDiscount": 0,
      "invoiceDiscountType": "Amount",
      "language": "EN",
      "eInvoiceItems": [
        {
          "eInvoiceItemId": "e77e4795-8d14-4899-855b-08dc4011fb90",
          "description": "Subscription for tech",
          "price": 10,
          "priceWithDiscount": 10,
          "priceTax": 0,
          "priceTotal": 10,
          "quantity": 2,
          "sku": "1245",
          "itemDiscount": 0,
          "itemDiscountType": "Amount",
          "tax": 0,
          "taxType": "Amount",
          "totalWithoutTax": 20,
          "totalTax": 0,
          "total": 20
        }
      ],
      "callbackUrl": "https://webhook.site/eb350004-1c84-48ef-8436-55c5a734cce4",
      "addOnFees": null,
      "addOnFeesType": null,
      "addOnFeesLabel": null
    },
    "eInvoiceSentLinks": [],
    "customFields": null,
    "paymentIntentId": "8f67f208-7a6d-4e5c-741e-08dc400e92f5",
    "parentPaymentIntentId": null,
    "number": "956638821339",
    "urlSlug": "w23-ctb-8y9-78o",
    "type": "EInvoice",
    "amount": 20,
    "currency": "SAR",
    "merchantId": "e80ece7e-fb2a-4c0b-de94-08d8a29a107b",
    "merchantPublicKey": "a087f4ca-9890-407b-9c2f-7630836cc020",
    "expiryDate": "2024-05-10T00:00:00Z",
    "activationDate": "2024-03-18T00:00:00Z",
    "status": "Created",
    "customerId": "938e6122-c42a-4ee1-4634-08dc400e9226",
    "eInvoiceUploadId": null,
    "staticPaylinkId": null,
    "subscriptionId": null,
    "subscriptionOccurrenceId": null,
    "orders": [],
    "isPending": true,
    "createdDate": "2024-03-18T12:41:39.74096Z",
    "createdBy": "e80ece7e-fb2a-4c0b-de94-08d8a29a107b",
    "updatedDate": null,
    "updatedBy": null
  },
  "termsAndConditions": null,
  "responseMessage": "Success",
  "detailedResponseMessage": "The operation was successful",
  "language": "EN",
  "responseCode": "000",
  "detailedResponseCode": "000"
}

API Response

As shown above, the parameter paymentIntent.link is returned in the response. You have the flexibility to programmatically share this link with your customers via SMS and email. Upon the customer's attempt to use the payment link, you'll receive notifications regarding the success or failure of the payment transaction..

Step 2: Sending the Payment Link to your customer.

Once you've generated the payment link, simply share it to your customer for payment completion. Upon clicking the link, your customer will be directed to a Geidea-hosted payment page where they can securely finalize the payment using their preferred payment method.

Step 3: Complete Payment using Hosted Payment Page or Direct API.

Upon clicking the payment link, a secure Geidea Hosted Payment Page appears where your customer fills in their payment details. The form validates inputs, notifying customers of errors if any. Once validated, the pay button activates, allowing customers to proceed with the payment seamlessly..

Upon completing the payment, the customer will be redirected (if the options is enabled by the merchant) to a page displaying a summary of the order.

Update a Payment Link

You can also update a payment link with the help of our Update Payment Intent API. This API can be used to carry out actions such as updating the expiry date of a payment link, updating the status of a payment link after sending the link to the customer by the Merchant and so on.

When you call the Create Payment Intent API, a paymentIntentId parameter is returned with the API response. You must use the paymentIntentId parameter in the Update Payment Intent API call to update the properties of a payment link.

To initiate an Update Payment Intent API call, you will need to provide the following required fields along with the payload of the API.

ParameterDatatypeDescriptionMandatory
paymentIntentIdstringUnique ID assigned by the Geidea platform for the payment linkYes
amountdoubleThe total amount for the transaction. The amount must be greater than 0.01. Must not have more than 2 digits after the decimal point.Yes
currencystringCurrency of the order for which the authentication is initiated. Please follow ISO 4217 alpha code standards for the currency code. The currency code must be 3 characters in length. The currencies must be limited to the list configured for your merchant account.Yes
customerobjectDetails of the customer for whom the payment link is being updatedNo
customer.emailstringEmail of the customer.Conditional
customer.namestringCustomer name. If customer object is added then having the customer name is mandatoryYes
customer.phoneCountryCodestringCountry code of customer's phone number eg: "+971". If phoneNumber is passed, phoneCountryCode must be passed.Conditional
customer.phoneNumberstringCustomer's phone number eg: "511111111". If phoneCountryCode is passed, phoneNumber must be passed. One of email or phoneNumber must be present.Conditional
customerIdstringUnique ID for the customer on the Geidea payment gateway. The identifier you can use to uniquely identify your customer on the Geidea platformNo
eInvoiceDetailsobjecte-Invoice details objectYes
eInvoiceDetails.subtotaldoubleSubtotal inclusive of tax. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity] sent in this requestYes
eInvoiceDetails.grandTotaldoubleGrand Total. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity] sent in this request.Yes
eInvoiceDetails.subtotalWithoutTaxdoubleSubtotal exclusive of tax. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity] if passed. If not set in request, it is set to [eInvoiceItems.price * eInvoiceItems.quantity] value automatically and the value is returned in response.No
eInvoiceDetails.subtotalTaxdoubleSubtotal tax. If not set in request, it is set to zero automatically and the value is returned in responseNo
eInvoiceDetails.extraChargesTypestringType of extra charges levied. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.invoiceDiscountTypestringType of discount applied on invoice. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.typestringType of eInvoice. If not set in request, it is set to "Detailed" automatically and the value is returned in response.No
eInvoiceDetails.collectCustomersBillingShippingAddressbooleanFlag indicating to capture Customer's billing and shipping addresses. If not set in request, it is set to false automatically and the value is returned in responseNo
eInvoiceDetails.preAuthorizeAmountbooleanFlag indicating whether to preauthorize the amount. If not set in request, it is set to false automatically and the value is returned in response.No
eInvoiceDetails.extraChargesdoubleExtra charges levied. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.chargeDescriptionstringDescription of charge levied. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.merchantReferenceIdstringThe merchant account identifier for which the payment link is created.No
eInvoiceDetails.invoiceDiscountdoubleDiscount applied on invoice. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.languagestringLanguage to be displayed in Payment Page. If not set in request, it is set to "EN" automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItemsobjectList of e-Invoice itemsYes
eInvoiceDetails.eInvoiceItems.pricedoubleUpdated price for itemsYes
eInvoiceDetails.eInvoiceItems.quantityintegerUpdated quantity of itemsYes
eInvoiceDetails.eInvoiceItems.totaldoubleUpdated totalYes
eInvoiceDetails.eInvoiceItems.eInvoiceItemIdstringe-Invoice item IDNo
eInvoiceDetails.eInvoiceItems.descriptionstringItem description. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.itemDiscountTypestringType of discount applied on item. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.eInvoiceItems.taxTypestringType of tax levied on item. Available values are: "Amount" or "Percentage".

Default Value: "Amount"
No
eInvoiceDetails.eInvoiceItems.totaldoubleTotal price including tax levied. Must be equal to [eInvoiceItems.price * eInvoiceItems.quantity]No
eInvoiceDetails.eInvoiceItems.priceWithDiscountdoubleItem price after discount is applied. If not set in request, it is set to value of eInvoiceItems.price automatically and the value is returned in responseNo
eInvoiceDetails.eInvoiceItems.priceTaxdoubleTax on Item Price. If not set in request, it is set to zero automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.priceTotaldoubleTotal Price inclusive of Tax. If not set in request, it is set to value of eInvoiceItems.price automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.skustringItem SKU. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.itemDiscountdoubleDiscount applied on item. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.taxdoubleTax on item. If not set in request, it is set to null automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.totalWithoutTaxdoubleTotal price of item without tax. If not set in request, it is set to value of amount automatically and the value is returned in response.No
eInvoiceDetails.eInvoiceItems.totalTaxdoubleTax for the item. If not set in request, it is set to zero automatically and the value is returned in response.No
statusstringStatus of the Payment Intent. Only SentToCustomer is allowed for merchant to changeNo

You can find a complete list of parameters that can be used with the Update Payment Intent API here.

Below is an example of executing an Update Payment Intent API call for a payment of 123.2 SAR with the mandatory parameters.

curl --request PUT \
     --url https://api.merchant.geidea.net/payment-intent/api/v1/direct/eInvoice \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "paymentIntentId": "8f67f208-7a6d-4e5c-741e-08dc400e92f5",
  "amount": 20,
  "currency": "SAR",
  "customer": {
    "name": "John",
    "email": "[email protected]",
    "phoneCountryCode": "+20",
    "phoneNumber": "8003030083"
  },
  "eInvoiceDetails": {
    "subtotal": 20,
    "grandTotal": 20,
    "extraChargesType": "Amount",
    "invoiceDiscountType": "Amount",
    "eInvoiceItems": [
      {
        "eInvoiceItemId": "17e95202-d151-43ff-d6af-08db4614f0bb",
        "description": "Subscription for tech1",
        "price": 10,
        "quantity": 2,
        "itemDiscountType": "Amount",
        "taxType": "Amount",
        "total": 20,
        "priceWithDiscount": 10,
        "priceTax": 0,
        "priceTotal": 10,
        "itemDiscount": 0,
        "tax": 0,
        "totalWithoutTax": 20,
        "totalTax": 0,
        "sku": "12456"
      }
    ],
    "type": "Detailed",
    "collectCustomersBillingShippingAddress": false,
    "preAuthorizeAmount": true,
    "subtotalWithoutTax": 20,
    "subtotalTax": 0,
    "extraCharges": 0,
    "chargeDescription": "charge amount update",
    "merchantReferenceId": "ref123",
    "invoiceDiscount": 0,
    "language": "EN"
  },
  "status": "SentToCustomer"
}
'
{
    "paymentIntent": {
        "link": "https://merchant.geidea.net/payByLink/GeideaGatewayKSA/w23-ctb-8y9-78o",
        "customer": {
            "customerId": "938e6122-c42a-4ee1-4634-08dc400e9226",
            "email": "[email protected]",
            "phoneNumber": "8003030083",
            "phoneCountryCode": "+20",
            "name": "John",
            "updatedBy": "PGW",
            "updatedDate": "2024-03-19T09:23:31.4158777Z",
            "addresses": [],
            "customValue": null
        },
        "eInvoiceDetails": {
            "type": "Detailed",
            "collectCustomersBillingShippingAddress": false,
            "preAuthorizeAmount": true,
            "subtotalWithoutTax": 20,
            "subtotalTax": 0,
            "subtotal": 20,
            "grandTotal": 20,
            "extraCharges": 0,
            "extraChargesType": "Amount",
            "extraChargesLabel": null,
            "chargeDescription": "charge amount update",
            "merchantReferenceId": "ref123",
            "invoiceDiscount": 0,
            "invoiceDiscountType": "Amount",
            "language": "EN",
            "eInvoiceItems": [
                {
                    "eInvoiceItemId": "7ca2efb5-8721-4539-b43f-08dc40161532",
                    "description": "Subscription for tech1",
                    "price": 10,
                    "priceWithDiscount": 10,
                    "priceTax": 0,
                    "priceTotal": 10,
                    "quantity": 2,
                    "sku": "12456",
                    "itemDiscount": 0,
                    "itemDiscountType": "Amount",
                    "tax": 0,
                    "taxType": "Amount",
                    "totalWithoutTax": 20,
                    "totalTax": 0,
                    "total": 20
                }
            ],
            "callbackUrl": "https://webhook.site/eb350004-1c84-48ef-8436-55c5a734cce4",
            "addOnFees": null,
            "addOnFeesType": null,
            "addOnFeesLabel": null
        },
        "eInvoiceSentLinks": [],
        "customFields": null,
        "paymentIntentId": "8f67f208-7a6d-4e5c-741e-08dc400e92f5",
        "parentPaymentIntentId": null,
        "number": "956638821339",
        "urlSlug": "w23-ctb-8y9-78o",
        "type": "EInvoice",
        "amount": 20,
        "currency": "SAR",
        "merchantId": "e80ece7e-fb2a-4c0b-de94-08d8a29a107b",
        "merchantPublicKey": "a087f4ca-9890-407b-9c2f-7630836cc020",
        "expiryDate": "2024-05-10T00:00:00Z",
        "activationDate": "2024-03-18T00:00:00Z",
        "status": "SentToCustomer",
        "customerId": "938e6122-c42a-4ee1-4634-08dc400e9226",
        "eInvoiceUploadId": null,
        "staticPaylinkId": null,
        "subscriptionId": null,
        "subscriptionOccurrenceId": null,
        "orders": [],
        "isPending": true,
        "createdDate": "2024-03-18T12:41:39.74096Z",
        "createdBy": "e80ece7e-fb2a-4c0b-de94-08d8a29a107b",
        "updatedDate": "2024-03-19T09:23:31.3091588Z",
        "updatedBy": "e80ece7e-fb2a-4c0b-de94-08d8a29a107b"
    },
    "termsAndConditions": null,
    "responseMessage": "Success",
    "detailedResponseMessage": "The operation was successful",
    "language": "EN",
    "responseCode": "000",
    "detailedResponseCode": "000"
}

Delete payment link

You can delete Payment Links issued to your customers using the Delete payment link API.

๐Ÿ“˜

You can only delete Payment Links that are in the Created state.

You need to pass the following parameter(s) as path parameter(s) in the API request

ParameterDatatypeDescriptionMandatory
paymentIntentIdstringPayment Intent ID that was generated when the payment link was created.Yes

Below is an example of executing a Cancel Payment Link API call.

curl --location --request DELETE 'https://api.merchant.geidea.net/payment-intent/api/v1/direct/eInvoice/9fca0f3d-bd93-469b-0782-08daf7ec2bc4' \
--header 'accept: text/plain' \
--header 'Authorization: Basic YTA4N2Y0Y2EtOTg5MC00MDdiLTljMmYtNzYzMDgzNmNjMDIwOmRmMGZjNjg3LTc4M2ItNDA1OC1hZjYzLTllODc2NDQ0YjM1Nw=='
{
    "responseMessage": "Success",
    "detailedResponseMessage": "The operation was successful",
    "language": "EN",
    "responseCode": "000",
    "detailedResponseCode": "000"
}

Send Payment Link via e-mail

You can send a Payment Link to your customers via e-mail using the Send Payment Link by email API.

๐Ÿ“˜

You can only send Payment Links that are in the Created state.

You need to pass the following parameter(s) as path parameter(s) in the API request

ParameterDatatypeDescriptionMandatory
paymentIntentIdstringPayment Intent ID that was generated when the payment link was created.Yes

Below is an example of executing a Cancel Payment Link API call.

curl --location --request POST 'https://api.merchant.geidea.net/payment-intent/api/v1/direct/eInvoice/219e4abd-901f-4f79-a4de-08db661548fa/SendByEmail' \
--header 'Authorization: Basic ZDllZmU5MDUtZTAxNS00ZjgyLWI5YTAtOTAwNjUxZmZhZTZlOjFiNzFkNjY1LTk0YjUtNDM3OS04ODQ4LWFiOWRlMjFmYzE2ZQ==' \
--data ''
{
    "paymentIntent": {
        "link": "https://merchant.geidea.net/payByLink/rbt-6sr-5dz-0gt",
        "customer": {
            "customerId": "d5ace925-35a0-4b2c-c768-08db6623eb3b",
            "email": "[email protected]",
            "phoneNumber": "1008529854",
            "phoneCountryCode": "+20",
            "name": "sidra",
            "updatedBy": null,
            "updatedDate": "2023-06-25T16:16:27.7450601Z",
            "addresses": []
        },
        "eInvoiceDetails": {
            "type": "Detailed",
            "collectCustomersBillingShippingAddress": false,
            "preAuthorizeAmount": false,
            "subtotalWithoutTax": 1000.00,
            "subtotalTax": 0.00,
            "subtotal": 1000.00,
            "grandTotal": 1000.00,
            "extraCharges": null,
            "extraChargesType": "Amount",
            "chargeDescription": null,
            "merchantReferenceId": "MECH990",
            "invoiceDiscount": null,
            "invoiceDiscountType": "Amount",
            "language": "EN",
            "eInvoiceItems": [
                {
                    "eInvoiceItemId": "2b261d67-b789-45d7-b811-08db66739c9a",
                    "description": null,
                    "price": 100.00,
                    "priceWithDiscount": 100.00,
                    "priceTax": 0.00,
                    "priceTotal": 100.00,
                    "quantity": 10,
                    "sku": null,
                    "itemDiscount": null,
                    "itemDiscountType": "Amount",
                    "tax": null,
                    "taxType": "Amount",
                    "totalWithoutTax": 1000.00,
                    "totalTax": 0.00,
                    "total": 1000.00
                }
            ]
        },
        "eInvoiceSentLinks": [
            {
                "sentDate": "2023-07-02T05:16:04.1401636Z",
                "channel": "Email",
                "recipient": "[email protected]"
            }
        ],
        "paymentIntentId": "219e4abd-901f-4f79-a4de-08db661548fa",
        "number": "739052552147",
        "urlSlug": "rbt-6sr-5dz-0gt",
        "type": "EInvoice",
        "amount": 1000.00,
        "currency": "EGP",
        "merchantId": "605c83e8-b0e7-4907-8878-08db6b89eb58",
        "merchantPublicKey": "d9efe905-e015-4f82-b9a0-900651ffae6e",
        "expiryDate": "2023-07-26T12:32:44.5226275Z",
        "activationDate": null,
        "status": "SentToCustomer",
        "customerId": "d5ace925-35a0-4b2c-c768-08db6623eb3b",
        "eInvoiceUploadId": null,
        "staticPaylinkId": null,
        "subscriptionId": null,
        "subscriptionOccurrenceId": null,
        "orders": [],
        "isPending": true,
        "createdDate": "2023-06-26T12:32:45.0134668Z",
        "createdBy": "605c83e8-b0e7-4907-8878-08db6b89eb58",
        "updatedDate": "2023-07-02T05:16:04.1856881Z",
        "updatedBy": "PGW"
    },
    "termsAndConditions": null,
    "responseMessage": "Success",
    "detailedResponseMessage": "The operation was successful",
    "language": "EN",
    "responseCode": "000",
    "detailedResponseCode": "000"
}

Send Payment Link via SMS

You can send a Payment Link to your customers via e-mail using the Send Payment Link by SMS API.

You need to pass the following parameter(s) as path parameter(s) in the API request

ParameterDatatypeDescriptionMandatory
paymentIntentIdstringPayment Intent ID that was generated when the payment link was created.Yes

Below is an example of executing a Cancel Payment Link API call.

curl --location --request POST 'https://api.merchant.geidea.net/payment-intent/api/v1/direct/eInvoice/b27ce64c-4dc1-4b52-409a-08db662a73ff/sendBySms' \
--header 'Authorization: Basic ZDllZmU5MDUtZTAxNS00ZjgyLWI5YTAtOTAwNjUxZmZhZTZlOjFiNzFkNjY1LTk0YjUtNDM3OS04ODQ4LWFiOWRlMjFmYzE2ZQ==' \
--data ''
{
    "paymentIntent": {
        "link": "https://merchant.geidea.net/payByLink/rbt-6sr-5dz-0gt",
        "customer": {
            "customerId": "d5ace925-35a0-4b2c-c768-08db6623eb3b",
            "email": "[email protected]",
            "phoneNumber": "1008529854",
            "phoneCountryCode": "+20",
            "name": "sidra",
            "updatedBy": null,
            "updatedDate": "2023-06-25T16:16:27.7450601Z",
            "addresses": []
        },
        "eInvoiceDetails": {
            "type": "Detailed",
            "collectCustomersBillingShippingAddress": false,
            "preAuthorizeAmount": false,
            "subtotalWithoutTax": 1000.00,
            "subtotalTax": 0.00,
            "subtotal": 1000.00,
            "grandTotal": 1000.00,
            "extraCharges": null,
            "extraChargesType": "Amount",
            "chargeDescription": null,
            "merchantReferenceId": "MECH990",
            "invoiceDiscount": null,
            "invoiceDiscountType": "Amount",
            "language": "EN",
            "eInvoiceItems": [
                {
                    "eInvoiceItemId": "2b261d67-b789-45d7-b811-08db66739c9a",
                    "description": null,
                    "price": 100.00,
                    "priceWithDiscount": 100.00,
                    "priceTax": 0.00,
                    "priceTotal": 100.00,
                    "quantity": 10,
                    "sku": null,
                    "itemDiscount": null,
                    "itemDiscountType": "Amount",
                    "tax": null,
                    "taxType": "Amount",
                    "totalWithoutTax": 1000.00,
                    "totalTax": 0.00,
                    "total": 1000.00
                }
            ]
        },
        "eInvoiceSentLinks": [
            {
                "sentDate": "2023-07-02T05:18:57.5098924Z",
                "channel": "Sms",
                "recipient": "+201008529854"
            },
            {
                "sentDate": "2023-07-02T05:16:04.1401636Z",
                "channel": "Email",
                "recipient": "[email protected]"
            }
        ],
        "paymentIntentId": "219e4abd-901f-4f79-a4de-08db661548fa",
        "number": "739052552147",
        "urlSlug": "rbt-6sr-5dz-0gt",
        "type": "EInvoice",
        "amount": 1000.00,
        "currency": "EGP",
        "merchantId": "605c83e8-b0e7-4907-8878-08db6b89eb58",
        "merchantPublicKey": "d9efe905-e015-4f82-b9a0-900651ffae6e",
        "expiryDate": "2023-07-26T12:32:44.5226275Z",
        "activationDate": null,
        "status": "SentToCustomer",
        "customerId": "d5ace925-35a0-4b2c-c768-08db6623eb3b",
        "eInvoiceUploadId": null,
        "staticPaylinkId": null,
        "subscriptionId": null,
        "subscriptionOccurrenceId": null,
        "orders": [],
        "isPending": true,
        "createdDate": "2023-06-26T12:32:45.0134668Z",
        "createdBy": "605c83e8-b0e7-4907-8878-08db6b89eb58",
        "updatedDate": "2023-07-02T05:16:04.1856881Z",
        "updatedBy": "PGW"
    },
    "termsAndConditions": null,
    "responseMessage": "Success",
    "detailedResponseMessage": "The operation was successful",
    "language": "EN",
    "responseCode": "000",
    "detailedResponseCode": "000"
}