Skip to main content
Worldline TravelHub provides iDEAL payments through a redirect flow for buyers in the Netherlands.

Setup

Please follow the common Worldline instructions to get set up with iDEAL via TravelHub. After setting up your TravelHub account, make sure iDEAL is enabled as a payment method on your account. TravelHub requires the billing country (address.country) for iDEAL transactions.

Features

Worldline TravelHub iDEAL payments support the following features:
  • Refunds - Refund transactions in full or in part
  • Partial refunds - Issue multiple partial refunds up to the captured amount
  • Transaction sync - Keep payment statuses synchronized with TravelHub
  • Webhook integration - Receive asynchronous payment updates
  • Redirect checkout - Redirect buyers to approve the payment

Supported countries

Worldline TravelHub supports transactions from buyers in NL.

Supported currencies

Worldline TravelHub supports processing payments in EUR.

Limitations

The following features are not supported by this connector:
  • Delayed capture - Authorization and capture must happen together
  • Partial capture - Capturing a portion of the authorized amount is not supported
  • Void - Canceling an authorization is not available
  • Payment method tokenization - Storing payment methods for recurring transactions is not supported
  • Settlement reporting - Settlement reporting is not available
  • Zero auth - Zero-dollar verification transactions are not supported
  • Over-capture - Capturing more than the authorized amount is not supported
  • Partial authorization - Authorizing only a portion of the requested amount is not supported
  • Deep linking - Direct app linking is not supported

Captures and refunds

As iDEAL transactions can take up to 48 hours to be marked as paid, refunds cannot be processed until the transaction reaches that state. Transactions marked as Captured in the system might not be refundable until this point.

Integration

The default integration for iDEAL via TravelHub uses a redirect to a payments page hosted by Gr4vy. Start by creating a new transaction with the following required fields.
var transaction = await client.Transactions.CreateAsync(
	transactionCreate: new TransactionCreate()
	{
		Amount = 1299,
		Currency = "EUR",
		Country = "NL",
		PaymentMethod =
			TransactionCreatePaymentMethod.CreateCheckoutSessionWithUrlPaymentMethodCreate(
				new RedirectPaymentMethodCreate()
				{
					Method = "ideal",
					RedirectUrl = "https://example.com/callback",
				}
			),
	}
);
After the transaction is created, the API response includes payment_method.approval_url and the buyer_approval_pending status.
{
	"type": "transaction",
	"id": "ea1efdd0-20f9-44d9-9b0b-0a3d71e9b625",
	"payment_method": {
		"type": "payment-method",
		"approval_url": "https://cdn.sandbox.spider.gr4vy.app/connectors/worldline/apm.html?token=..."
	},
	"method": "ideal"
}
Redirect the buyer to the approval_url (open in a browser or Webview) so they can complete authentication and approve the payment. After approval, the buyer is redirected to the redirect_url you provided when creating the transaction. Do not rely solely on the redirect - either poll the transaction or (recommended) rely on webhooks to detect the final status (for example capture_succeeded or failure states).

Testing

Refer to the TravelHub docs for further guidance on your integration, including detailed testing instructions.