@POST @Produces(APPLICATION_JSON) @Consumes(APPLICATION_JSON) @Path("/{invoiceId:" + UUID_PATTERN + "}/" + PAYMENTS) public Response createInstantPayment(final PaymentJson payment, @QueryParam(QUERY_PAYMENT_EXTERNAL) @DefaultValue("false") final Boolean externalPayment, @HeaderParam(HDR_CREATED_BY) final String createdBy, @HeaderParam(HDR_REASON) final String reason, @HeaderParam(HDR_COMMENT) final String comment, @javax.ws.rs.core.Context final HttpServletRequest request, @javax.ws.rs.core.Context final UriInfo uriInfo) throws AccountApiException, PaymentApiException { final CallContext callContext = context.createContext(createdBy, reason, comment, request); final Account account = accountUserApi.getAccountById(UUID.fromString(payment.getAccountId()), callContext); final UUID invoiceId = UUID.fromString(payment.getInvoiceId()); if (externalPayment) { paymentApi.createExternalPayment(account, invoiceId, payment.getAmount(), callContext); } else { paymentApi.createPayment(account, invoiceId, payment.getAmount(), callContext); } return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getPayments", payment.getInvoiceId()); }