PAYMILL: a widely available payment solution

3 min read Original article ↗
  • Have customers pay directly on your website
  • Accept payments in 100 currencies
  • Simple and transparent pricing
  • Be safe comprehensive risk and anti-fraud measures

pay with PAYMILL

Test our API

Test any function with a simple CURL request or use one of our intuitive language wrappers for PHP, Ruby, Java, Python, Node.Js and .NET.


API Reference

Copied!

curl https://api.paymill.com/v2/transactions \
  -u <DEIN_PRIVATE_KEY>: \
  -d "amount=4200" \
  -d "currency=EUR" \
  -d "token=098f6bcd4621d373cade4e832627b4f6" \
  -d "description=Test Transaction"
TransactionService srvTx = Paymill.getService(TransactionService.class);
Transaction params = new Transaction();
params.setToken("098f6bcd4621d373cade4e832627b4f6");
params.setAmount(4200);
params.setCurrency("EUR");
params.setDescription("Test Transaction");
Transaction tx = srvTx.create(params);
$transaction = new Paymill\Models\Request\Transaction();
$transaction->setAmount(4200) // e.g. "4200" for 42.00 EUR
            ->setCurrency('EUR')
            ->setToken('098f6bcd4621d373cade4e832627b4f6')
            ->setDescription('Test Transaction');
$response = $request->create($transaction);
curl https://api.paymill.com/v2/refunds/tran_023d3b5769321c649435 \
  -u <DEIN_PRIVATE_KEY>: \
  -d "amount=4200"
TransactionService srvTx = Paymill.getService(TransactionService.class);
String txId = "tran_023d3b5769321c649435";
int amount = 4200;
String description = "Sample Description";
Refund refund = srvTx.refund(txId, amount, description);
$refund = new Paymill\Models\Request\Refund();
$refund->setId('tran_023d3b5769321c649435')
       ->setAmount(4200) // e.g. "4200" for 42.00 EUR
       ->setDescription('Sample Description');
$response = $request->create($transaction);
curl https://api.paymill.com/v2/clients \
  -u <DEIN_PRIVATE_KEY>: \
  -d "email=lovely-client@example.com" \
  -d "description=Lovely Client"
ClientService srvClient = Paymill.getService(ClientService.class);
Client params = new Client();
params.setEmail("lovely-client@example.com");
params.setDescription("Lovely Client");
Client client = srvClient.create(params);
$client = new Paymill\Models\Request\Client();
$client->setEmail('max.mustermann@example.com')
       ->setDescription('Lovely Client')
$response = $request->create($client);
curl https://api.paymill.com/v2/clients/client_88a388d9dd48f86c3136 \
  -u <DEIN_PRIVATE_KEY>: \
  -X DELETE
ClientService srvClient = Paymill.getService(ClientService.class);
srvClient.delete("client_88a388d9dd48f86c3136");
$client = new Paymill\Models\Request\Client();
$client->setId('client_88a388d9dd48f86c3136');
$response = $request->delete($client);
curl https://api.paymill.com/v2/offers \
  -u <DEIN_PRIVATE_KEY>: \
  -d "amount=4200" \
  -d "currency=EUR" \
  -d "interval=month" \
  -d "name=Test Offer"
OfferService srvOffer = Paymill.getService(OfferService.class);
Offer params = new Offer();
params.setAmount(4200);
params.setCurrency("EUR");
params.setInterval(Offer.Interval.MONTH);
params.setName("Test Offer");
Offer offer = srvOffer.create(params);
$offer = new Paymill\Models\Request\Offer();
$offer->setAmount(4200)
      ->setCurrency('EUR')
      ->setInterval('1 MONTH')
      ->setName('Test Offer');
$response = $request->create($offer);
curl https://api.paymill.com/v2/subscriptions \
  -u <DEIN_PRIVATE_KEY>: \
  -d "client=client_64b025ee5955abd5af66" \
  -d "offer=offer_40237e20a7d5a231d99b" \
  -d "payment=pay_95ba26ba2c613ebb0ca8"
OfferService srvOffer = Paymill.getService(OfferService.class);
Offer offer = new Offer();
offer.setId("offer_40237e20a7d5a231d99b");
Client client = new Client();
client.setId("client_64b025ee5955abd5af66");
Payment pay = new Payment();
pay.setId("pay_95ba26ba2c613ebb0ca8");
Subscription subs = srvOffer.subscribe(offer, client, pay);
$subscription = new Paymill\Models\Request\Subscription();
$subscription->setClient('client_88a388d9dd48f86c3136')
             ->setOffer('offer_40237e20a7d5a231d99b')
             ->setPayment('pay_95ba26ba2c613ebb0ca8');
$response = $request->create($subscription);

Payment form
Perform a test payment

Perform a test payment without signing up and view the result in our merchant cockpit.

E-Commerce shop plugins
Payment with a few clicks

  • Download and install to your shop
  • Get a PAYMILL merchant account
  • Connect using your PAYMILL API keys. Easy!


See all plugins

Louis Kearns

shopify
PARTENAIRE PAYMILL

” We are thrilled to be able to offer PAYMILL to our growing community of e-commerce stores across Europe. PAYMILL offers a widely available and easy-to-use payments solution that is well-aligned with the interests of Shopify's target customers. “

Louis Kearns, Director of Payments shopify.com

SECURITY is important for us

Security is our top priority

All data handled by PAYMILL is highly encrypted to meet security standards. We make complying with PCI DSS super easy for you. Check out our certified services now!

Learn more

TÜV Saarland - Gepr. Zahlungssystem trusted shops

Improve Conversions - Full integration

Customizing and directly integrating payments into your website or app means that your clients will not be redirected away to pay.

  • No iFrame
  • No redirect
  • No sign-in
curl https://api.paymill.com/v2/transactions \
  -u 03cbcc51d84b50cb0f44aedb3fcf72fb: \
  -d "amount=4200" \
  -d "currency=EUR" \
  -d "token=098f6bcd4621d373cade4e832627b4f6" \
  -d "description=Test Transaction"

Simple Pricing

Simple pricing

Starting at 2,95 % + 0,28€ per successful transaction

  • No setup fees
  • No monthly fees
  • No hidden fees
  • Funds settled every 7 days

See our rates

International payments

We support businesses that are located in 40 countries.
With PAYMILL, you can...

  • Accept credit cards from all around the world
  • Apply for 100 different processing currencies
  • Get paid out in 23 different currencies

Additionally, you can offer a variety of payment methods and card types.

International Payments

Contact Support