- if($self->transaction_type() eq "ECHECK") {
- $self->required_fields(qw/type login password action amount last_name
- first_name account_number routing_code
- bank_name/);
- } elsif($self->transaction_type() eq 'CC' ) {
+ if ($self->transaction_type() eq "ECHECK") {
+ if ($self->{_content}->{customer_org} ne '') {
+ $self->required_fields(qw/type login password amount routing_code
+ account_number account_type bank_name
+ account_name account_type check_type
+ customer_org customer_ssn/);
+ } else {
+ $self->required_fields(qw/type login password amount routing_code
+ account_number account_type bank_name
+ account_name account_type check_type
+ license_num license_state license_dob/);
+ }
+ } elsif ($self->transaction_type() eq 'CC' ) {
+ if ( $self->{_content}->{action} eq 'PRIOR_AUTH_CAPTURE' ) {
+ if ( $self->{_content}->{order_number}) {
+ $self->required_fields(qw/type login password action amount/);
+ } else {
+ $self->required_fields(qw/type login password action amount
+ card_number expiration/);
+ }
+ } elsif ( $self->{_content}->{action} eq 'VOID' ) {
+ $self->required_fields(qw/login password action/);
+ } else {