class RemotePaymentInitiationService implements PaymentInitiationService {

    @Override
    public Response<PaymentInitiationWithStatusResponse> getSinglePaymentInformation(PaymentProduct paymentProduct,
                                                                                     String paymentId,
                                                                                     RequestHeaders requestHeaders,
                                                                                     RequestParams requestParams) {
        ResponseEntity<Object> responseEntity = client.getPaymentInformation(
            PaymentService.PAYMENTS,
            paymentProduct,
            paymentId,
            requestParams.toMap(),
            requestHeaders.toMap()
        );
        PaymentInitiationWithStatusResponse response =
            objectMapper.convertValue(responseEntity.getBody(), PaymentInitiationWithStatusResponse.class);
        return new Response<>(responseEntity.getStatusCodeValue(),
            response,
            responseHeadersMapper.getHeaders(responseEntity.getHeaders()));
    }

    public  RemotePaymentInitiationService(PaymentInitiationClient paymentInitiationClient);
    public  RemotePaymentInitiationService(PaymentInitiationClient paymentInitiationClient, ObjectMapper objectMapper);

}