¿Carro de compras API para cualquier pasarela de pago? (PayPal por lo menos requerido)

Estoy tratando de encontrar una API basada en java que incluya los detalles del procesamiento de una transacción con tarjeta de crédito o una compra a través de PayPal como mínimo, y otras puertas de enlace como una ventaja de una forma de IPN (es decir, no se requieren productos, solo un monto de factura)

Como una simplificación, creo que debería poder hacer algo como el siguiente pseudocódigo:

shoppingApi.postTransaction("paypal", amount, currency, invoiceId, purchaseDescription)

y más adelante durante una tarea programada o en una notificación de una URL de IPN:

completedPayments = shoppingApi.getUnprocessedCompletedPayments();
for (Payment payment: completedPayments)
{
  // my code to process a successful payment.
}

Y luego procesaría las compras.

Sé que hay muchos carritos de compras que hacen esto, pero por lo que he visto, todos quieren que pongas tus productos en su sistema, lo cual no funciona para mí. Mis productos están en un sistema de terceros y solo quiero procesar un pago. Eso es todo.

Y ningún carro que conozca expone una API simple como la que sugiero anteriormente. No me importa qué tipo de pago usan mis usuarios, solo quiero saber si lo completaron. Sé que Shopify.com tiene una API REST que hace algo como esto, pero no es como IPN (quiere que sus productos estén en su sistema).

¡Gracias de antemano por cualquier sugerencia!

EDITAR: Por supuesto, sé que habría otros estados que tendría que considerar, como "pendiente", etc., pero eso sería simplemente otra llamada a la API, como shoppingApi.getPendingPayments (). Si la API hiciera las 2 llamadas anteriores, estaría muy feliz ;-)

EDIT 2: Preferiría OpenSource, pero estoy totalmente abierto a comerciales si se trata de una tarifa plana, se puede probar en cierta medida y es razonablemente maduro / respetable.

EDIT 3 - NOTA PRINCIPAL: Me siento confiado de que tal biblioteca debería existir. Si lo hace o no es otra pregunta. Entonces, para ser claro, realmente me gustaría ver las respuestas "sí, usar esta biblioteca", no "NO", esto no se puede hacer, ya que estoy seguro de que puedo hacerlo ;-) Gracias de antemano !