diff --git a/bin/account-manager.pl.in b/bin/account-manager.pl.in
index 102e764e194ed71551a5e1deff402d48efaafc49..0c02223577ec4d066e6ab3a3383b4f967ea2a2f5 100755
--- a/bin/account-manager.pl.in
+++ b/bin/account-manager.pl.in
@@ -158,9 +158,7 @@ sub parse_federation_metadata {
     };
     die "unable to load federation metadata: $EVAL_ERROR" if $EVAL_ERROR;
 
-    my $data = $federation_metadata->parse(
-        entity_id => $options{sp_entityid},
-    );
+    my $data = $federation_metadata->parse(id => $options{sp_entityid});
 
     printf "Document %s parsed\n",
       $configuration->{federation_metadata_file_path};
diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm
index b678ef6d59fa861ca74eadc86a1a35a5582b4dd2..2dc3a836d30dec7504c4eb463c91220497c0adc0 100644
--- a/lib/IdPAccountManager/SAMLMetadata.pm
+++ b/lib/IdPAccountManager/SAMLMetadata.pm
@@ -43,7 +43,7 @@ sub parse {
     {
 
         my $id = $EntityDescriptor->getAttribute('entityID');
-        next ENTITY if $args{entity_id} && $args{entity_id} ne $id;
+        next ENTITY if $args{id} && $args{id} ne $id;
 
         my $data = {
             entityid => $id
@@ -55,8 +55,7 @@ sub parse {
             next unless $child->nodeType() == XML_ELEMENT_NODE;
 
             if ($child->localname() eq 'IDPSSODescriptor') {
-                next ENTITY
-                    if $args{entity_type} && $args{entity_type} ne 'idp';
+                next ENTITY if $args{type} && $args{type} ne 'idp';
 
                 $data->{type} = 'idp';
 
@@ -82,8 +81,7 @@ sub parse {
                 }
 
             } elsif ($child->localname() eq 'SPSSODescriptor') {
-                next ENTITY
-                    if $args{entity_type} && $args{entity_type} ne 'sp';
+                next ENTITY if $args{type} && $args{type} ne 'sp';
 
                 $data->{type} = 'sp';
 
diff --git a/lib/IdPAccountManager/WebRequest.pm b/lib/IdPAccountManager/WebRequest.pm
index 11877142cca97f26b2a2eeb333c30d87f19fc303..ce6f90b1495a84b0a4ae4f337e659ec5b54e70fb 100755
--- a/lib/IdPAccountManager/WebRequest.pm
+++ b/lib/IdPAccountManager/WebRequest.pm
@@ -255,9 +255,7 @@ sub req_select_sp {
         return undef;
     }
 
-    $federation_metadata->parse(
-        entity_id => $self->{in}->{sp_entityid}
-    );
+    $federation_metadata->parse(id => $self->{in}->{sp_entityid});
 
     ## Create a serviceprovider object to store major parameters for this SP in DB
     my $service_provider = IdPAccountManager::Data::ServiceProvider->new(
diff --git a/t/samlmetadata.t b/t/samlmetadata.t
index ef44024b6e1825738110e0f02878addb1bd89309..846ae7266dc8cb64a2e421bc3a6715c27ee83519 100755
--- a/t/samlmetadata.t
+++ b/t/samlmetadata.t
@@ -86,18 +86,18 @@ ok(defined $all, 'metadata extraction: defined result');
 ok(ref $all eq 'ARRAY', 'metadata extraction: result type');
 ok(scalar @$all == 4318, 'metadata extraction: result count');
 
-my $sp = $metadata->parse(entity_id => 'https://filesender.ipm.ir/');
+my $sp = $metadata->parse(id => 'https://filesender.ipm.ir/');
 ok(defined $sp, 'filtered metadata extraction: defined result');
 ok(ref $sp eq 'ARRAY', 'filtered metadata extraction: result type');
 ok(scalar @$sp == 1, 'filtered metadata extraction: result count');
 is($sp->[0]->{entityid}, 'https://filesender.ipm.ir/', 'filtered entity has expected ID');
 
-my $none = $metadata->parse(entity_id => 'https://no.such.sp/');
+my $none = $metadata->parse(id => 'https://no.such.sp/');
 ok(defined $none, 'filtered metadata extraction: defined result');
 ok(ref $none eq 'ARRAY', 'filtered metadata extraction: result type');
 ok(scalar @$none == 0, 'filtered metadata extraction: result count');
 
-my $idp = $metadata->parse(entity_type => 'idp');
+my $idp = $metadata->parse(type => 'idp');
 ok(defined $idp, 'filtered metadata extraction: defined result');
 ok(ref $idp eq 'ARRAY', 'filtered metadata extraction: result type');
 ok(scalar @$idp == 2561, 'filtered metadata extraction: result count');