认证
您机器的凭证是 client_id 和 client_secret 这一对。用这两者换取 OAuth2 令牌(client_credentials),并在每次调用 /v2/ 时通过 Authorization: Bearer 发送该令牌。令牌有效期为 900 秒。
API 只接受来自您凭证中登记的服务器 IP 的调用。您可以在控制台生成 client_secret 并填写出口 IP,见控制台中的密钥与 IP。
令牌 #
POST /oauth/token
client_id 和 client_secret 通过 HTTP Basic 发送,也就是 curl -u 的做法:
curl -u "loja01:SEU_CLIENT_SECRET" -d "grant_type=client_credentials" -d "scope=cob.write cob.read pix.read ex.saldo.read ex.config.read" https://api.amunpay.com/oauth/token
POST /oauth/token
Authorization: Basic base64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&scope=cob.write cob.read pix.read ex.saldo.read ex.config.read
→ 200
{
"access_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6IjAxSjEifQ...",
"token_type": "Bearer",
"expires_in": 900,
"scope": "cob.write cob.read pix.read ex.saldo.read ex.config.read"
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
grant_type |
字符串 | 是 | 固定为 client_credentials。 |
scope |
字符串 | 否 | 以空格分隔的权限范围,最多 10 个,须在已授予的范围内。省略时,令牌包含所有已授予的权限范围。 |
除 Basic 之外,client_id 和 client_secret 也可以放在表单正文中。两种方式同时发送且取值不同时,返回 400 invalid_request。
令牌只对来自已登记 IP 的调用签发和生效:来自其他 IP 时,令牌请求和每次调用都返回 403 origem_nao_permitida。未登记任何 IP 时,任何调用都无法通过。
控制台中的密钥与 IP #
贵公司的管理员在控制台的 Integração(集成)菜单、Credenciais(凭证)标签页中,凭双因素验证码生成 client_secret。密钥只显示一次,与 client_id 并列,各带一个复制按钮,之后不再显示。丢失后请重新生成:旧密钥立即失效。已签发的令牌在过期前仍然有效,除非您标记了疑似泄露,此时这些令牌也会一并失效。
| 时机 | 结果 |
|---|---|
| 首次生成凭证 | 您至少填写一个出口 IP,这些 IP 立即生效。 |
| 重新生成 | 生成新密钥。权限范围和 IP 保持不变。 |
| 移除 IP | 立即生效。 |
| 添加 IP | 立即生效,并发送邮件通知贵公司的技术联系人和财务联系人。如果 AmunPay 为您的账户开启了 IP 等待期,则 24 小时后生效:页面会显示它开始生效的时间,生效前您可以撤销。 |
控制台接受公网 IP,网段最大为 /24(IPv4)或 /48(IPv6),最多 20 个 IP。对凭证的每项操作都会通过邮件通知贵公司的联系人,邮件中不含密钥。未登记技术联系人或财务联系人时,控制台既不能生成凭证,也不能添加 IP。
只有管理员可以生成凭证和修改 IP。其他用户可以查看 client_id 和 IP。如果 AmunPay 为您的账户开启了双因素等待期,刚启用双因素验证、刚被提升权限、刚被重新启用,或密码刚由他人重置的管理员,需要等待 24 小时才能生成。拥有独立凭证的子账户,其凭证由所属的主体公司生成。
如果页面提示该功能未对您的账户开放,请联系 AmunPay。AmunPay 也可以为您生成密钥并登记 IP,由 AmunPay 添加的新 IP 立即生效。
第一次调用 #
GET /v2/ex/config
GET /v2/ex/config
→ 200
{
"conta": { "status": "ATIVA", "desde": "2026-09-18T09:20:23Z" },
"capacidades": {
"pix": true,
"subcontas": true,
"split": true,
"baas": false
},
"recebedor": { "chave": "01J8Z3QK5W7R2N4M6P8T0V2X4Y" },
"custodia": { "tipo": "PROPRIA", "custodiante": "Conta PI", "recusaAntesDoCredito": true },
"depositoPorChave": { "modo": "RECUSAR" }
}
| 字段 | 类型 | 说明 |
|---|---|---|
conta.status |
字符串 | ATIVA 是唯一可以运营的状态。 |
capacidades |
对象 | 该账户可以使用的功能。请先读取,不要自行假设。 |
recebedor.chave |
字符串 | 您账户的标识符,填在收款的 chave 中。不要把它当作 Pix 密钥公开:请始终创建收款,通过 pixCopiaECola 收取款项。没有 txid 的 Pix 不会计入余额,除非 depositoPorChave.modo 为 ACEITAR。 |
custodia.tipo |
字符串 | PROPRIA:账户由本机构持有。PARCEIRA:在另一家支付机构的名义账户。 |
custodia.recusaAntesDoCredito |
布尔值 | true:被拒绝的 Pix 不会进入账户。false:它会进入账户,再通过退款返还给付款人。 |
depositoPorChave.modo |
字符串 | RECUSAR:没有收款的 Pix 会被拒绝或退回。ACEITAR:它会转为一笔收款并入账。 |
权限范围 #
| 权限范围 | 开放的功能 |
|---|---|
cob.read、cob.write |
收款。 |
pix.read、pix.write |
收到的 Pix 和退款。 |
ex.pix.send、ex.pix.send.read |
提现。 |
ex.saldo.read、ex.extrato.read |
余额、对账单、交易和汇总。 |
ex.webhook.read、ex.webhook.write、ex.eventos.read |
Webhook 和事件流。 |
ex.subcontas.read、ex.subcontas.write |
子账户。 |
ex.limites.read、ex.limites.write、ex.bloqueios.read |
限额和余额冻结。 |
ex.med.read |
争议。 |
ex.inquilinos.read、ex.inquilinos.write |
子账户的独立凭证。 |
ex.config.read |
GET /v2/ex/config。 |
令牌错误 #
POST /oauth/token 以 { "error", "error_description" } 格式响应。
| 状态码 | error |
触发条件 |
|---|---|---|
| 401 | invalid_client |
密钥错误、client_id 未知或凭证已停用(响应不会说明是哪一种),或未发送任何凭证。 |
| 400 | invalid_request |
缺少 grant_type、Basic 无法解码,或 Basic 与正文不一致。 |
| 400 | unsupported_grant_type |
grant_type 不是 client_credentials。 |
| 400 | invalid_scope |
权限范围超出已授予的范围,或超过 10 个。 |
| 403 | origem_nao_permitida |
来源 IP 不在凭证当前生效的 IP 中。开启 IP 等待期时,通过控制台添加的 IP 要 24 小时后才生效。 |
| 429 | invalid_client |
同一 IP 连续五次发送错误的密钥。请等待 Retry-After;等待期间的尝试不会被校验。 |
| 429 | limite_requisicoes |
同一 IP 每秒超过 2 次请求(突发上限 20 次)。请等待 Retry-After。 |
| 413 | corpo_grande_demais |
正文超过 4 KiB。 |
调用错误 #
| 状态码 | title |
触发条件 |
|---|---|---|
| 401 | acesso_negado |
调用未带 Authorization: Bearer。 |
| 401 | token_invalido |
令牌无效或已过期。请重新获取。 |
| 401 | token_revogado |
令牌在过期前被吊销(密钥轮换、权限范围变更或停用)。请用当前密钥重新申请一次令牌;如果申请被拒绝,请联系技术支持。 |
| 403 | origem_nao_permitida |
来源 IP 不在凭证当前生效的 IP 中。重新获取令牌无法解决。开启 IP 等待期时,通过控制台添加的 IP 要 24 小时后才生效。 |
| 403 | escopo_insuficiente |
令牌没有该路由所需的权限范围。请申请包含该范围的令牌,或不带 scope 申请。如果它不在已授予的范围内,请联系技术支持。 |
| 403 | merchant_nao_provisionado |
该 client_id 尚未开通账户。 |
| 403 | conta_bloqueada |
账户状态不是 ATIVA。 |