private int sub() throws Exception {
    Array<P2<String, Option<UUID>>> parse = outvoicePaidClient.parse(outvoicePaidClient.get());

    int i = 0;
    for (P2<String, Option<UUID>> p : parse) {
      RegistrationsSqlMapper.Registration registration;
      try (Connection c = dataSource.getConnection()) {
        c.setAutoCommit(false);

        Option<UUID> apiClientRef = p._2();
        if (apiClientRef.isNone()) continue;

        Option<UUID> registrationId =
            registrationsSqlMapper.invoiceReferenceToRegistrationId(c, apiClientRef.some());
        if (registrationId.isNone()) continue;

        registration = registrationsSqlMapper.one(c, registrationId.some()).some();
      }

      if (registration.tuple.state != RegistrationState.INVOICING) continue;

      markAsPaidService.markAsPaid(registration.id);
      i++;
    }
    return i;
  }