In kidney exchange programmes patients with end-stage renal failure may exchange their willing, but incompatible living donors among each other. National kidney exchange programmes are in operation in ten European countries, and some of them have already conducted international exchanges through regulated collaborations. The exchanges are selected by conducting regular matching runs (typically every three months) according to well-defined constraints and optimisation criteria, which may differ across countries. In this work we give integer programming formulations for solving international kidney exchange problems, where the optimisation goals and constraints may be different in the participating countries and various feasibility criteria may apply for the international cycles and chains. We also conduct simulations showing the long-run effects of international collaborations for different pools and under various national restrictions and objectives.