Guia de Integração

API de Pagamentos

Esta opção oferece maior controle e flexibilidade sobre o processo de pagamento, porém exige conhecimentos de programação ou o uso de algum plugin ou biblioteca de integração.

[fluxograma]
[legenda]

Para iniciar uma requisição de pagamento, você precisa fazer uma chamada à API de Pagamentos do PagSeguro informando os dados do pagamento. Esta requisição cria um código identificador e, com este código, você pode direcionar o comprador para o site do PagSeguro, onde ele realizará o pagamento.

Ao chamar a API de Pagamentos, você pode informar os dados do pagamento de duas formas diferentes: ou em parâmetros HTTP ou em formato XML.

Informando os dados em parâmetros HTTP

Uma forma de fazer a requisição à API de Pagamentos é informar os dados do pagamento diretamente em parâmetros HTTP utilizando o método POST.

Esta forma é bastante similar ao Pagamento via HTML, com a diferença que a chamada é feita à API de Pagamentos e não ao formulário de pagamento.

URL da API de Pagamentos do PagSeguro:

https://ws.pagseguro.uol.com.br/v2/checkout

O cabeçalho Content-Type deve ser informado como no exemplo abaixo:

Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1

Observação: caso sua aplicação ou loja não utilize o conjunto de caracteres ISO-8859-1, p.e.(UTF-8), é necessário substituir o parâmetro charset do exemplo acima.

Cada pagamento pode conter um ou mais itens. Cada item representa um produto ou qualquer outro bem que está sendo comprado. Os parâmetros associados a itens têm seu nome terminando em um número.

Por exemplo: os parâmetros itemId1, itemDescription1, itemAmount1 e itemQuantity1 referem-se ao primeiro item do pagamento, enquanto que os parâmetros itemId2, itemDescription2, itemAmount2 e itemQuantity2 referem-se ao segundo item do pagamento.

Veja abaixo um exemplo completo de uma requisição para a API de Pagamentos do PagSeguro informando os dados do pagamento em parâmetros HTTP (as linhas foram quebradas para facilitar a leitura).

curl https://ws.pagseguro.uol.com.br/v2/checkout/ -d\
	"email=suporte@lojamodelo.com.br\
	&token=95112EE828D94278BD394E91C4388F20\
	&currency=BRL\
	&itemId1=0001\
	&itemDescription1=Notebook Prata\
	&itemAmount1=24300.00\
	&itemQuantity1=1\
	&itemWeight1=1000\
	&itemId2=0002\
	&itemDescription2=Notebook Rosa\
	&itemAmount2=25600.00\
	&itemQuantity2=2\
	&itemWeight2=750\
	&reference=REF1234\
	&senderName=Jose Comprador\
	&senderAreaCode=11\
	&senderPhone=56273440\
	&senderEmail=comprador@uol.com.br\
	&shippingType=1\
	&shippingAddressStreet=Av. Brig. Faria Lima\
	&shippingAddressNumber=1384\
	&shippingAddressComplement=5o andar\
	&shippingAddressDistrict=Jardim Paulistano\
	&shippingAddressPostalCode=01452002\
	&shippingAddressCity=Sao Paulo\
	&shippingAddressState=SP\
	&shippingAddressCountry=BRA"

Informando os dados em formato XML

Uma forma de fazer a requisição à API de Pagamentos é informar os dados do pagamento no formato XML, esta forma pode ser mais interessante se você já trabalha com XML em seu sistema e prefere estruturar os dados do pagamento neste formato.

Nesse formato você informa o conteúdo XML que representa os dados do pagamento em um único parâmetro HTTP.

Uma vantagem de utilizar o formato XML é informar os itens do pagamento de forma mais estruturada, cada item é informado dentro de uma tag .

Veja abaixo os cabeçalhos HTTP necessários para fazer uma requisição à API de Pagamentos do PagSeguro informando os dados no formato XML.

Veja abaixo a URL da API de Pagamentos do PagSeguro:

https://ws.pagseguro.uol.com.br/v2/checkout

O cabeçalho Content-Type deve ser informado como no exemplo abaixo:

Content-Type: application/xml; charset=ISO-8859-1

Observação: caso sua aplicação ou loja não utilize o conjunto de caracteres ISO-8859-1, p.e.(UTF-8), é necessário substituir o parâmetro charset do exemplo acima.

Ao fazer a requisição é necessário informar o e-mail e o token da conta de sua loja ou aplicação no PagSeguro como no exemplo abaixo:

email=suporte@lojamodelo.com.br&token=95112EE828D94278BD394E91C4388F20

Veja abaixo exemplo de XML estruturado para representar os dados de um pagamento:

	<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
	<checkout>
		<currency>BRL</currency>
		<items>
			<item>
				<id>0001</id>
				<description>Notebook Prata</description>
				<amount>24300.00</amount>
				<quantity>1</quantity>
				<weight>1000</weight>
			</item>
			<item>
				<id>0002</id>
				<description>Notebook Rosa</description>
				<amount>25600.00</amount>
				<quantity>2</quantity>
				<weight>750</weight>
			</item>
		</items>
		<reference>REF1234</reference>
		<sender>
			<name>José Comprador</name>
			<email>comprador@uol.com.br</email>
			<phone>
				<areaCode>11</areaCode>
				<number>56273440</number>
			</phone>
		</sender>
		<shipping>
			<type>1</type>
			<address>
				<street>Av. Brig. Faria Lima</street>
				<number>1384</number>
				<complement>5o andar</complement>
				<district>Jardim Paulistano</district>
				<postalCode>01452002</postalCode>
				<city>Sao Paulo</city>
				<state>SP</state>
				<country>BRA</country>
			</address>
		</shipping>
	</checkout>

Descrição dos parâmetros da API de Pagamentos

Os parâmetros esperados pela API de Pagamentos são descritos na tabela abaixo.

PARÂMETRO DESCRIÇÃO
Cabeçalho HTTP:
charset

Codificação de caracteres.

Especifica a codificação de caracteres usada nos parâmetros enviados.

Presença: Opcional.
Tipo: Texto.
Formato: Os valores aceitos são ISO-8859-1 e UTF-8.

Parâmetro HTTP:
email

E-mail da conta que chama a API.

Especifica o e-mail associado à conta PagSeguro que está realizando a chamada à API.

Presença: Obrigatória.
Tipo: Texto.
Formato: um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres.

Parâmetro HTTP:
token

Token da conta que chama a API.

Informa o token correspondente à conta PagSeguro que está realizando a chamada a API. Para criar um token para sua conta PagSeguro, acesse a página de configurações de pagamentos.

Presença: Obrigatória.
Tipo: Texto.
Formato: uma sequência de 32 caracteres.

Elemento XML:
<checkout>

Este campo é a raiz do arquivo XML e engloba os dados do pagamento.

Parâmetro HTTP:
receiverEmail

Elemento XML:
<checkout>
<receiver>
<email>

Especifica o e-mail que deve aparecer na tela de pagamento.

Presença: Opcional.
Tipo: Texto.
Formato: um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres. O e-mail informado deve estar vinculado à conta PagSeguro que está realizando a chamada à API.

Parâmetro HTTP:
currency

Elemento XML:
<checkout>
<currency>

Moeda utilizada.

Indica a moeda na qual o pagamento será feito. No momento, a única opção disponível é BRL (Real).

Presença: Obrigatória.
Tipo: Texto.
Formato: Case sensitive. Somente o valor BRL é aceito.

Elemento XML:
<checkout>
<items>

Lista de itens contidos no pagamento.

Elemento XML:
<checkout>
<items>
<item>

Representa um item do pagamento.

Parâmetro HTTP:
itemId1, itemId2, etc.

Elemento XML:
<checkout>
<items>
<item>
<id>

Identificadores dos itens.

Identificam os itens sendo pagos. Você pode escolher códigos que tenham significado para seu sistema e informá-los nestes parâmetros. O PagSeguro não realiza qualquer validação sobre esses identificadores, mas eles não podem se repetir em um mesmo pagamento.

Presença: Obrigatória.
Tipo: Texto.
Formato: Livre, com limite de 100 caracteres.

Parâmetro HTTP:
itemDescription1, itemDescription2, etc.

Elemento XML:
<checkout>
<items>
<item>
<description>

Descrições dos itens.

Descrevem os itens sendo pagos. A descrição é o texto que o PagSeguro mostra associado a cada item quando o comprador está finalizando o pagamento, portanto é importante que ela seja clara e explicativa.

Presença: Obrigatória.
Tipo: Texto.
Formato: Livre, com limite de 100 caracteres.

Parâmetro HTTP:
itemAmount1, itemAmount2, etc.

Elemento XML:
<checkout>
<items>
<item>
<amount>

Valores unitários dos itens.

Representam os preços unitários de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa o valor de uma unidade do item, que será multiplicado pela quantidade para obter o valor total dentro do pagamento.

Presença: Obrigatória.
Tipo: Número.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.

Parâmetro HTTP:
itemQuantity1, itemQuantity2, etc.

Elemento XML:
<checkout>
<items>
<item>
<quantity>

Quantidades dos itens.

Representam as quantidades de cada item sendo pago. Além de poder conter vários itens, o pagamento também pode conter várias unidades do mesmo item. Este parâmetro representa a quantidade de um item, que será multiplicado pelo valor unitário para obter o valor total dentro do pagamento.

Presença: Obrigatória.
Tipo: Número.
Formato: Um número inteiro maior ou igual a 1 e menor ou igual a 999.

Parâmetro HTTP:
itemShippingCost1, itemShippingCost2, etc.

Elemento XML:
<checkout>
<items>
<item>
<shippingCost>

Custos de frete dos itens.

Representam os custos de frete de cada item sendo pago. Caso este custo seja especificado, o PagSeguro irá assumi-lo como o custo do frete do item e não fará nenhum cálculo usando o peso do item.

Presença: Opcional.
Tipo: Número.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e., 1234.56), maior que 0.00 e menor ou igual a 9999999.00.

Parâmetro HTTP:
itemWeight1, itemWeight2, etc.

Elemento XML:
<checkout>
<items>
<item>
<weight>

Pesos dos itens.

Correspondem ao peso (em gramas) de cada item sendo pago. O PagSeguro usa o peso do item para realizar o cálculo do custo de frete nos Correios, exceto se o custo de frete do item já for especificado diretamente. Veja mais sobre as regras de cálculo de frete.

Presença: Opcional.
Tipo: Número.
Formato: Um número inteiro correspondendo ao peso em gramas do item. A soma dos pesos de todos os produtos não pode ultrapassar 30000 gramas (30 kg).

Parâmetro HTTP:
reference

Elemento XML:
<checkout>
<reference>

Código de referência.

Define um código para fazer referência ao pagamento. Este código fica associado à transação criada pelo pagamento e é útil para vincular as transações do PagSeguro às vendas registradas no seu sistema.

Presença: Opcional.
Tipo: Texto.
Formato: Livre, com o limite de 200 caracteres.

Elemento XML:
<checkout>
<sender>

Dados do comprador.

Parâmetro HTTP:
senderEmail

Elemento XML:
<checkout>
<sender>
<email>

E-mail do comprador.

Especifica o e-mail do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: um e-mail válido (p.e., usuario@site.com.br), com no máximo 60 caracteres.

Parâmetro HTTP:
senderName

Elemento XML:
<checkout>
<sender>
<name>

Nome completo do comprador.

Especifica o nome completo do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: No mínimo duas sequências de caracteres, com o limite total de 50 caracteres.

Elemento XML:
<checkout>
<sender>
<phone>

Dados do telefone do comprador.

Parâmetro HTTP:
senderAreaCode

Elemento XML:
<checkout>
<sender>
<phone>
<areaCode>

DDD do comprador.

Especifica o código de área (DDD) do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Número.
Formato: Um número de 2 dígitos correspondente a um DDD válido.

Parâmetro HTTP:
senderPhone

Elemento XML:
<checkout>
<sender>
<phone>
<number>

Número do telefone do comprador.

Especifica o número do telefone do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Número.
Formato: Um número de 7 a 9 dígitos.

Elemento XML:
<checkout>
<sender>
<documents>

Lista de documentos do comprador.

Elemento XML:
<checkout>
<sender>
<documents>
<document>

Representa um documento do comprador.

Elemento XML:
<checkout>
<sender>
<documents>
<document>
<type>

Tipo de documento do comprador.

Especifica o tipo de documento do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Case sensitive. Somente o valor CPF é aceito.

Parâmetro HTTP:
senderCPF

Elemento XML:
<checkout>
<sender>
<documents>
<document>
<value>

Número do documento do comprador.

Especifica o número do documento do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Número.
Formato: Um número de 11 dígitos.

Parâmetro HTTP:
senderBornDate

Elemento XML:
<checkout>
<sender>
<bornDate>

Data de nascimento do comprador.

Especifica a data de nascimento do comprador que está realizando o pagamento. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Data.
Formato:dd/MM/yyyy (dia/mês/ano).

Elemento XML:
<checkout>
<shipping>

Dados do frete.

Parâmetro HTTP:
shippingType

Elemento XML:
<checkout>
<shipping>
<type>

Tipo de frete.

Informa o tipo de frete a ser usado para o envio do produto. Esta informação é usada pelo PagSeguro para calcular, junto aos Correios, o valor do frete a partir do peso dos itens. A tabela abaixo descreve os valores aceitos e seus significados:

Código Significado
1 Encomenda normal (PAC).
2 SEDEX
3 Tipo de frete não especificado.

Presença: Opcional.
Tipo: Número.
Formato: Um número inteiro de acordo com a tabela acima.

Parâmetro HTTP:
shippingCost

Elemento XML:
<checkout>
<shipping>
<cost>

Valor total do frete.

Informa o valor total de frete do pedido. Caso este valor seja especificado, o PagSeguro irá assumi-lo como valor do frete e não fará nenhum cálculo referente aos pesos e valores de entrega dos itens.

Presença: Opcional.
Tipo: Número.
Formato: Decimal, com duas casas decimais separadas por ponto (p.e, 1234.56), maior que 0.00 e menor ou igual a 9999999.00.

Elemento XML:
<checkout>
<shipping>
<address>

Dados do endereço de envio.

Parâmetro HTTP:
shippingAddressCountry

Elemento XML:
<checkout>
<shipping>
<address>
<country>

País do endereço de envio.

Informa o país do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: No momento, apenas o valor BRA é permitido.

Parâmetro HTTP:
shippingAddressState

Elemento XML:
<checkout>
<shipping>
<address>
<state>

Estado do endereço de envio.

Informa o estado do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Duas letras, em maiúsculo, representando a sigla do estado brasileiro correspondente.

Parâmetro HTTP:
shippingAddressCity

Elemento XML:
<checkout>
<shipping>
<address>
<city>

Cidade do endereço de envio.

Informa a cidade do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Livre. Deve ser um nome válido de cidade do Brasil, com no mínimo 2 e no máximo 60 caracteres.

Parâmetro HTTP:
shippingAddressPostalCode

Elemento XML:
<checkout>
<shipping>
<address>
<postalCode>

CEP do endereço de envio.

Informa o CEP do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Número.
Formato: Um número de 8 dígitos.

Parâmetro HTTP:
shippingAddressDistrict

Elemento XML:
<checkout>
<shipping>
<address>
<district>

Bairro do endereço de envio.

Informa o bairro do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Livre, com limite de 60 caracteres.

Parâmetro HTTP:
shippingAddressStreet

Elemento XML:
<checkout>
<shipping>
<address>
<street>

Nome da rua do endereço de envio.

Informa o nome da rua do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Livre, com limite de 80 caracteres.

Parâmetro HTTP:
shippingAddressNumber

Elemento XML:
<checkout>
<shipping>
<address>
<number>

Número do endereço de envio.

Informa o número do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Livre, com limite de 20 caracteres.

Parâmetro HTTP:
shippingAddressComplement

Elemento XML:
<checkout>
<shipping>
<address>
<complement>

Complemento do endereço de envio.

Informa o complemento (bloco, apartamento, etc.) do endereço de envio do produto. Este campo é opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses dados novamente no PagSeguro.

Presença: Opcional.
Tipo: Texto.
Formato: Livre, com limite de 40 caracteres.

Parâmetro HTTP:
extraAmount

Elemento XML:
<checkout>
<extraAmount>

Valor extra.

Especifica um valor extra que deve ser adicionado ou subtraído ao valor total do pagamento. Esse valor pode representar uma taxa extra a ser cobrada no pagamento ou um desconto a ser concedido, caso o valor seja negativo.

Presença: Opcional.
Tipo: Número.
Formato: Decimal (positivo ou negativo), com duas casas decimais separadas por ponto (p.e., 1234.56 ou -1234.56), maior ou igual a -9999999.00 e menor ou igual a 9999999.00. Quando negativo, este valor não pode ser maior ou igual à soma dos valores dos produtos.

Parâmetro HTTP:
redirectURL

Elemento XML:
<checkout>
<redirectURL>

URL de redirecionamento após o pagamento.

Determina a URL para a qual o comprador será redirecionado após o final do fluxo de pagamento. Este parâmetro permite que seja informado um endereço de específico para cada pagamento realizado. Veja mais em Redirecionando o comprador para um endereço dinâmico.

Presença: Opcional.
Tipo: Texto.
Formato: Uma URL válida, com limite de 255 caracteres.

Parâmetro HTTP:
notificationURL

Elemento XML:
<checkout>
<notificationURL>

URL para envio de notificações sobre o pagamento.

Determina a URL para a qual o PagSeguro enviará os códigos de notificação relacionados ao pagamento. Toda vez que houver uma mudança no status da transação e que demandar sua atenção, uma nova notificação será enviada para este endereço.

Presença: Opcional.
Tipo: Texto.
Formato: Uma URL válida, com limite de 255 caracteres.

Parâmetro HTTP:
maxUses

Elemento XML:
<checkout>
<maxUses>

Número máximo de usos para o código de pagamento.

Determina o número máximo de vezes que o código de pagamento criado pela chamada à API de Pagamentos poderá ser usado. Este parâmetro pode ser usado como um controle de segurança.

Presença: Opcional.
Tipo: Número.
Formato: Um número inteiro maior que 0 e menor ou igual a 999.

Parâmetro HTTP:
maxAge

Elemento XML:
<checkout>
<maxAge>

Prazo de validade do código de pagamento.

Determina o prazo (em segundos) durante o qual o código de pagamento criado pela chamada à API de Pagamentos poderá ser usado. Este parâmetro pode ser usado como um controle de segurança.

Presença: Opcional.
Tipo: Número.
Formato: Um número inteiro maior ou igual a 30 e menor ou igual a 999999999.

Parâmetro HTTP:
metadataItemKey1, metadataItemKey2, etc.

Elemento XML:
<checkout>
<metadata>
<item>
<key>

Metadados da transação.

Permite adicionar informações extras, agrupadas ou não, em sua requisição de pagamento.

Presença: Opcional.
Tipo: Texto.
Formato: Somente os valores descritos abaixo são aceitos.
Obs.: Usando HTTP existe uma limitação de até 100 keys por post.

Valor Formato Descrição
PASSENGER_CPF [0-9]{11} CPF do passageiro
PASSENGER_PASSPORT .+ Passaporte do passageiro
ORIGIN_CITY .+ Cidade de origem
DESTINATION_CITY .+ Cidade de destino
ORIGIN_AIRPORT_CODE .+ Código do aeroporto de origem
DESTINATION_AIRPORT_CODE .+ Código do aeroporto de destino
GAME_NAME .+ Nome do jogo
PLAYER_ID .+ ID do jogador
TIME_IN_GAME_DAYS [0-9]+ Tempo no jogo em dias
MOBILE_NUMBER ([0-9]{2})?([0-9]{2})([0-9]{4,5}[0-9]{4}) Celular de recarga
PASSENGER_NAME .+ Nome do passageiro
Parâmetro HTTP:
metadataItemValue1, metadataItemValue2, etc.

Elemento XML:
<checkout>
<metadata>
<item>
<value>

Valores dos metadados da transação.

Permite especificar valores para os metadados definidos em sua requisição de pagamento.

Presença: Opcional.
Tipo: Texto.
Formato: Livre. Com limite de 100 caracteres.
Obs.: Usando HTTP existe uma limitação de até 100 values por post.

Parâmetro HTTP:
metadataItemGroup1, metadataItemGroup2, etc.

Elemento XML:
<checkout>
<metadata>
<item>
<group>

Grupos de metadados presentes na transação.

Permite agrupar dois ou mais metadados, como por exemplo cpf e nome de um mesmo passageiro.

Presença: Opcional.
Tipo: Número.
Formato: Um número inteiro maior que zero.
Obs.: Usando HTTP existe uma limitação de até 100 groups por post.

Resposta da API de Pagamentos

A resposta da API de Pagamentos é dada em formato XML. O exemplo abaixo mostra uma resposta de sucesso a uma chamada à API de pagamentos.

	<?xml version="1.0" encoding="ISO-8859-1"?>
	<checkout>
		<code>8CF4BE7DCECEF0F004A6DFA0A8243412</code>
		<date>2010-12-02T10:11:28.000-02:00</date>
	</checkout>

A tabela abaixo descreve os elementos presentes em uma resposta com sucesso da API de Pagamentos.

PARÂMETRO DESCRIÇÃO
<checkout>
Raiz do arquivo XML de resposta. Contém os dados do código de pagamento criado.
<checkout>
<code>

Código identificador do pagamento criado.

Este código deve ser usado para direcionar o comprador para o fluxo de pagamento.

Tipo: Texto.
Formato: Uma sequência de 32 caracteres.

<checkout>
<date>

Data de criação do código de pagamento.

Tipo: Data/hora.
Formato: YYYY-MM-DDThh:mm:ss.sTZD, o formato oficial do W3C para datas. Veja mais sobre formatação de datas.

Caso ocorra algum erro na chamada à API de Pagamentos, seja algum erro nos parâmetros informados ou alguma falha técnica no sistema, uma resposta de erro será retornada, como no exemplo abaixo. Ela indicará todos os erros identificados na chamada.

	<?xml version="1.0" encoding="ISO-8859-1"?>
	<errors>
		<error>
			<code>11004</code>
			<message>Currency is required.</message>
		</error>
		<error>
			<code>11005</code>
			<message>Currency invalid value: 100</message>
		</error>
	</errors>

A tabela abaixo descreve os elementos presentes em uma resposta com erros da API de Pagamentos.

ELEMENTO DESCRIÇÃO
<errors>
Raiz do arquivo XML de resposta de erros. Contém a lista de erros encontrados.
<errors>
<error>

Descreve um erro encontrado durante o processamento da API de Pagamentos.

<errors>
<error>
<code>

Código do erro.

Identifica a natureza do erro encontrado e permite o tratamento do erro pelo seu sistema.

Tipo: Número.
Formato: Veja a tabela de erros da API de Pagamentos.

<errors>
<error>
<message>

Descrição do erro.

Descreve o erro encontrado para que ele seja compreendido pelo desenvolvedor.

Tipo: Texto.
Formato: Veja a tabela de erros da API de Pagamentos.

Direcionando o comprador para o fluxo de pagamento

Após realizar uma chamada com sucesso à API de Pagamentos, você deve direcionar o comprador para o fluxo de pagamento, usando o código de pagamento retornado. O exemplo abaixo mostra uma URL montada para que o usuário inicie um fluxo de pagamento.

https://pagseguro.uol.com.br/v2/checkout/payment.html?code=8CF4BE7DCECEF0F004A6DFA0A8243412

Note que a URL base do fluxo de pagamentos é a mesma da página de Pagamentos usada no formulário do Pagamento via HTML. O único parâmetro utilizado no direcionamento é descrito na tabela abaixo.

PARÂMETRO DESCRIÇÃO
code

Código de pagamento retornado pela chamada à API de pagamento do PagSeguro.

Presença: Obrigatória.
Tipo: Texto.
Formato: Uma sequência de 32 caracteres.

Tem alguma sugestão ou dúvida? desenvolvedores@pagseguro.com.br.