Create transaction

To create a transaction, just provide an amount and an UID for the previously created payment method.

Simple card payment

If you have create a Card already, you can run a simple payment with just a few lines of code.

TransactionRequest request = new TransactionRequest()
    .amount(new BigDecimal("10"), "EUR")
    .creditCardUid("card_90SFG41GAS");

gateway.transaction().create(request);

Result

Handling a result depends on a payment method used, here is an example for card authorization request.

if (txn.getStatus() == Transaction.Status.AUTHORIZED) {
    // Success
}

Create a card payment - full properties

This example shows the full use of our Transactions API.

By specifying saveInSafe setting option, separate objects will be created for certain fields in Pencepay platform (e.g. CreditCard, Customer, Address)

TransactionRequest request = new TransactionRequest()
    .amount(new BigDecimal("10.99"), "EUR")
    .orderId("123456")
    .customer()
        .firstName("John")
        .lastName("Hancock")
        .email("john.doe@server.com")
        .done()
    .billingAddress()
        .addressLine1("some street 123")
        .addressLine2("address line 2")
        .city("Zagreb")
        .postalCode("10000")
        .countryIsoCode2("HR")
        .done()
    .creditCard()
        .cardholderName("John Hancock")
        .number("4350100010001002")
        .cvv("313")
        .expiryMonth(12)
        .expiryYear(2016)
        .done()
    .customData("cust_field", "cust_val")
    .settings()
        .locale("hr-HR")
        .reserveFundsOnly(true)
        .saveInSafe(true)
        .done();

gateway.transaction().create(request);

Create a bank transfer

In order to perform a bank transfer, provide a paymentMethod and bic properties.

TransactionRequest request = new TransactionRequest()
    .paymentMethod(PaymentMethodType.BANK_TRANSFER)
    .bic("NWBKGB2L");
    .amount(new BigDecimal("10.99"), "EUR")
    .orderId("123456")
    .customer()
        .firstName("John")
        .lastName("Hancock")
        .email("john.doe@server.com")
        .done()
    .billingAddress()
        .addressLine1("some street 123")
        .addressLine2("address line 2")
        .city("Zagreb")
        .postalCode("10000")
        .countryIsoCode2("HR")
        .done()
    .customData("cust_field", "cust_val")
    .settings()
        .saveInSafe(true)
        .done();

gateway.transaction().create(request);