+       # Store location
+       $self->{req}{location} = $content->{location};
+
+       # Store restry after
+       $self->{req}{retryafter} = $content->{retryafter};
+
+       # Store status
+       $self->{req}{status} = $content->{status};
+
+       # With processing
+       if ($self->{req}{status} eq 'processing') {
+               # Init max run
+               my $remaining = TIMEOUT;
+
+               # Iterate until processing order becomes ready
+               while (--$remaining >= 0 and $self->{req}{status} eq 'processing') {
+                       # Sleep
+                       sleep($self->{req}{retryafter});
+
+                       # Refresh content
+                       my $res = $self->_post($self->{req}{location}, '');
+
+                       # Handle error
+                       unless ($res->is_success) {
+                               confess('POST '.$self->{req}{location}.' failed: '.$res->status_line);
+                       }
+
+                       # Handle error
+                       unless ($res->content) {
+                               confess('POST '.$self->{req}{location}.' empty content: '.$res->status_line);
+                       }
+
+                       # Handle error
+                       unless ($res->headers->{location}) {
+                               confess('POST '.$self->{req}{location}.' missing location: '.$res->status_line);
+                       }
+
+                       # Extract content
+                       $content = from_json($res->content);
+
+                       # Check status
+                       unless ($content->{status} eq 'valid' or $content->{status} eq 'processing') {
+                               confess('POST '.$self->{req}{location}.' invalid status: '.$content->{status}.': '.$res->status_line);
+                       }
+
+                       # Store location
+                       # XXX: used with async response
+                       $self->{req}{location} = $res->headers->{location};
+
+                       # Store retry after
+                       $self->{req}{retryafter} = (defined $res->headers->{'retry-after'} and $res->headers->{'retry-after'}) ? $res->headers->{'retry-after'} : 1;
+
+                       # Store status
+                       $self->{req}{status} = $content->{status};
+
+                       # Write to file
+                       write_file($file, to_json($content));
+               }
+
+               # Without valid state
+               unless($self->{req}{status} eq 'valid') {
+                       confess('POST '.$self->{req}{location}.' invalid status: '.$self->{req}{status});
+               }
+       }
+