-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswagger-2_0.yaml
2520 lines (2387 loc) · 124 KB
/
swagger-2_0.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
openapi: 3.0.0
info:
title: API Payment Initiation - Open Finance Brasil
description: |
API de Iniciação de Pagamentos, responsável por viabilizar as operações de iniciação de pagamentos para o Open Finance Brasil.
Para cada uma das formas de pagamento previstas é necessário obter prévio consentimento do cliente através dos `endpoints` dedicados ao consentimento nesta API.
# Orientações
No diretório de participantes duas `Roles` estão relacionadas à presente API:
- `CONTA`, referente às instituições detentoras de conta participantes do Open Finance Brasil;
- `PAGTO`, referente às instituições iniciadoras de transação de pagamento de conta participantes do Open Finance Brasil.
Os tokens utilizados para consumo nos endpoints de consentimentos devem possuir o scope `payments` e os `endpoints` de pagamentos devem possuir os `scopes`, `openid` e `payments`.
Esta API não requer a implementação de `permissions` para sua utilização. Todas as requisições e respostas devem ser assinadas seguindo o protocolo estabelecido na sessão <a href="https://openbanking-brasil.github.io/areadesenvolvedor/#assinaturas" target="_blank">Assinaturas</a> do guia de segurança.
## Regras do arranjo Pix
A implementação e o uso da API de Pagamentos Pix devem seguir as regras do arranjo Pix do Banco Central, que podem ser encontradas no link abaixo:
[https://www.bcb.gov.br/estabilidadefinanceira/pix?modalAberto=regulamentacao_pix](https://www.bcb.gov.br/estabilidadefinanceira/pix?modalAberto=regulamentacao_pix)
## Assinatura de payloads
No contexto da API Payment Initiation, os `payloads` de mensagem que trafegam tanto por parte da instituição iniciadora de transação de pagamento quanto por parte da instituição detentora
de conta devem estar assinados. Para o processo de assinatura destes `payloads` as instituições devem seguir as especificações de segurança publicadas no Portal do desenvolvedor:
- Certificados exigidos para assinatura de mensagens:
[Padrões de certificados digitais Open Finance Brasil](https://github.com/OpenBanking-Brasil/specs-seguranca/blob/main/open-banking-brasil-certificate-standards-1_ID1.md#certificado-de-assinatura-certificadoassinatura)
- Como assinar o payload JWS: [https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/18055279/Como+Assinar+o+Payload+-+v2.0.0-rc1.0+-+Pagamentos](https://openfinancebrasil.atlassian.net/wiki/spaces/OF/pages/18055279/Como+Assinar+o+Payload+-+v2.0.0-rc1.0+-+Pagamentos)
## Controle de acesso
O endpoint de consulta de pagamento GET /pix/payments/{paymentId} deve suportar acesso a partir de access_token emitido por meio de um grant_type do tipo `client credentials`, como opção do uso do token vinculado ao consentimento (hybrid flow).
Para evitar vazamento de informação, a detentora deve validar que o pagamento consultado pertence ao ClientId que o criou e, caso haja divergências, retorne um erro HTTP 400.
Para o caso de QR Code estático e dinâmico a detentora deverá obrigatoriamente realizar validações sobre o conteúdo dos campos recebidos. Entretanto, a escolha do momento desta validação na criação do consentimento ou no pagamento, fica a cargo da detentora.
## Aprovações de múltipla alçada
Para o caso de Pix imediato, todas as aprovações necessárias devem ser realizadas nos canais da detentora até às 23:59 (horário de Brasília) da data de solicitação do pagamento.
Já para o caso de Pix agendado, todas as aprovações devem ser realizadas até a data/hora limite suportada pela detentora.
## Validações
**Validações** (*após o processo de DCR e obtenção de token client credential*– não escopo dessa documentação)
Durante a jornada de iniciação de pagamento, diferentes validações são necessárias pela instituição detentora
de conta e devem ocorrer conforme a seguir:
1. Na criação do consentimento (*POST /consents*);
2. Na criação do pagamento - Síncrono (*POST /payments*);
3. Validações na consulta do pagamento (*GET /pix/payments/{paymentId}*);
4. Demais validações executadas durante o processamento assíncrono pela detentora (consultadas pela iniciadora através do endpoint *GET /pix/payments/{paymentId}*).
**Os tipos de validações dispostas abaixo não determinam a ordem em que as instituições devem implementá-las**
1. **Validações na criação do consentimento (_POST /consents_)**
1.1 **Orientações Iniciais**
 1.1.1 Não devem ser retornadas informações associadas ao usuário/cliente (ex. insuficiência de saldo, conta inexistente/bloqueada), uma vez que o cliente ainda não autorizou o consentimento / consumo de seus dados para o pagamento.
 1.1.2 Não devem ser executadas validações no DICT (Diretório de Identificadores de Contas Transacionais do Pix), à partir dos dados compartilhados nesse *endpoint*. Tais validações podem ocorrer somente na criação do pagamento;
1.2 **Casos de erro relacionados às permissões de segurança para acesso à API (ex. certificado, access_token, jwt, assinatura)**
 1.2.1 Validação de Certificado: Valida utilização de certificado correto durante processo de DCR - HTTP Code 401 (INVALID_CLIENT);
 1.2.2 Validação de Access_Token: Verifica se Access_Token utilizado está correto - HTTP Code 401 (UNAUTHORIZED);
 1.2.3 Validação de assinatura da mensagem: Valida se assinatura das mensagens enviadas está correta – HTTP Code 400 (BAD_SIGNATURE);
 1.2.4 Validação de Claims (exceto data);
 1.2.4.1 Valida se dados (aud, iss, iat e jti) são válidos - HTTP Code 401 (INVALID_CLIENT);
 1.2.4.2 Valida reuso de jti - HTTP Code 403 (INVALID_CLIENT).
1.3 **Casos de erros sintáticos e semânticos, previstos com retorno HTTP Code 422 - Unprocessable Entity (detalhamento adicional na documentação técnica da API):**
 1.3.1 **Sintáticas**
 1.3.1.1 Envio de campos obrigatórios: Valida se todos os campos obrigatórios são informados (PARAMETRO_NAO_INFORMADO);
 1.3.1.2 Formatação de parâmetros: Valida se parâmetros informados obedecem a formatação especificada (PARAMETRO_INVALIDO).
 1.3.2 **Semânticas**
 1.3.2.1 Forma de pagamento: Valida se a forma de pagamento é suportada pela detentora (FORMA_PAGAMENTO_INVALIDA) **Obs. No detalhe do erro, a variável “modalidade” deve ser comunicada pela detentora da forma mais clara possível - ex. modalidade de pagamento não suportada (_localInstrument_ - QRES) ou tipo de arranjo pagamento não suportado (_type_ – ex. Pix / TED – previsto para inclusão futura);**
 1.3.2.2 Data de pagamento: Valida se a data de pagamento enviada é válida para a forma de pagamento selecionada (DATA_PAGAMENTO_INVALIDA);
 1.3.2.3 Detalhes do pagamento: Valida se determinado parâmetro informado obedece às regras de negócio (DETALHE_PAGAMENTO_INVALIDO);
 1.3.2.4 Demais validações não explicitamente informadas (ex. suspeita de fraude): (NAO_INFORMADO);
 1.3.2.5 Idempotência: Valida se há divergência entre chave de idempotência e informações enviadas (ERRO_IDEMPOTENCIA).
2. **Validações na criação do pagamento - Síncrono (_POST /payments_)**
2.1 **Casos de erro relacionados às permissões de segurança para acesso à API (ex. certificado, access_token, jwt, assinatura)**
 2.1.1 Validação de Certificado: Valida utilização de certificado correto durante processo de DCR - HTTP Code 401 (INVALID_CLIENT);
 2.1.2 Validação de Access_Token: Verifica se Access_Token utilizado está correto - HTTP Code 401 (UNAUTHORIZED);
 2.1.3 Validação de assinatura da mensagem: Valida se assinatura das mensagens enviadas está correta – HTTP Code 400 (BAD_SIGNATURE);
 2.1.4 Validação de Claims (exceto data);
 2.1.4.1 Valida se dados (aud, iss, iat e jti) são válidos - HTTP Code 401 (INVALID_CLIENT);
 2.1.4.2 Valida reuso de jti - HTTP Code 403 (INVALID_CLIENT).
2.2 **Casos de erro sintáticos e semânticos, previstos com retorno HTTP Code 422 - Unprocessable Entity (detalhamento adicional na documentação técnica da API):**
 2.2.1 **Sintáticas**
 2.3.1.1 Envio de campos obrigatórios: Valida se todos os campos obrigatórios são informados (PARAMETRO_NAO_INFORMADO);
 2.3.1.2 Formatação de parâmetros: Valida se parâmetros informados obedecem a formatação especificada (PARAMETRO_INVALIDO).
 2.2.2 **Semânticas**
 2.2.2.1 Saldo do usuário: Valida se a conta selecionada possui saldo suficiente para realizar o pagamento (SALDO_INSUFICIENTE);
 2.2.2.2 Limites da transação: Valida se valor (ou quantidade de transações) ultrapassa faixa de limite parametrizada na detentora (VALOR_ACIMA_LIMITE);
 2.2.2.3 Valor informado (QR Code): Valida se valor enviado é válido para o QR Code informado (VALOR_INVALIDO);
 2.2.2.4 Cobrança inválida: Valida expiração, vencimento e status (COBRANCA_INVALIDA);
 2.2.2.5 Status Consentimento: Valida se status de consentimento é diferente de “AUTHORISED” (CONSENTIMENTO_INVALIDO);
 2.2.2.6 Divergência entre pagamento e consentimento: Valida se dados do pagamento são diferentes dos dados do consentimento (PAGAMENTO_DIVERGENTE_CONSENTIMENTO)
 2.2.2.7 Recusado pela detentora: Valida se pagamento foi recusado pela detentora (PAGAMENTO_RECUSADO_DETENTORA), com a descrição do motivo de recusa (ex. chave Pix inválida, QRCode inválido, conta bloqueada);
 2.2.2.8 Detalhes do pagamento: Valida se determinado parâmetro informado obedece às regras de negócio (DETALHE_PAGAMENTO_INVALIDO);
 2.2.2.9 Demais validações não explicitamente informadas (ex. suspeita de fraude): (NAO_INFORMADO);
 2.2.2.10 Idempotência: Valida se há divergência entre chave de idempotência e informações enviadas (ERRO_IDEMPOTENCIA).
2.3 **Casos de erro para validações síncronas no DICT**
 Nesse cenário, o pagamento não é criado, porém o consentimento deve ser alterado para o status CONSUMED Retorno esperado do endpoint POST/Payments: HTTP Code 422 - Unprocessable Entity:
 • Erro por dados inválidos: Conforme item **2.2.2.8**
 • Erro por suspeita de fraude: Conforme item **2.2.2.9**
3. **Validações na consulta do pagamento (_GET /pix/payments/{paymentId}_)**
3.1 **Casos de erro relacionados às permissões de segurança para acesso à API (ex. certificado, access_token)**
 3.1.1 Validação de Certificado: Valida utilização de certificado correto durante processo de DCR - HTTP Code 401 (INVALID_CLIENT);
 3.1.2 Validação de Access_Token: Verifica se Access_Token utilizado está correto - HTTP Code 401 (UNAUTHORIZED).
4. **Demais validações executadas durante o processamento assíncrono pela detentora, poderão ser consultados pela iniciadora através do endpoint _GET /pix/payments/{paymentId}_ previstos com retorno HTTP Code 200 – OK com status RJCT (Rejected) e rejectionReason conforme abaixo (detalhamento adicional na documentação técnica da API):**
4.1 **Demais validações durante processamento assíncrono**
 4.1.1 Saldo do usuário: Valida se a conta selecionada possui saldo suficiente para realizar o pagamento (SALDO_INSUFICIENTE);
 4.1.2 Limites da transação: Valida se valor (ou quantidade de transações) ultrapassa faixa de limite parametrizada na detentora (VALOR_ACIMA_LIMITE);
 4.1.3 Valor informado (QR Code): Valida se valor enviado é válido para o QR Code informado (VALOR_INVALIDO);
 4.1.4 Cobrança inválida: Valida expiração, vencimento e status (COBRANCA_INVALIDA);
 4.1.5 Divergência entre pagamento e consentimento: Valida se dados do pagamento são diferentes dos dados do consentimento (PAGAMENTO_DIVERGENTE_CONSENTIMENTO);
 4.1.6 Recusado pela detentora: Valida se pagamento foi recusado pela detentora (PAGAMENTO_RECUSADO_DETENTORA), com a descrição do motivo de recusa (ex. chave Pix inválida, QRCode inválido, conta bloqueada);
 4.1.7 Detalhes do pagamento: Valida se determinado parâmetro informado obedece às regras de negócio (DETALHE_PAGAMENTO_INVALIDO);
 4.1.8 Demais validações não explicitamente informadas (ex. suspeita de fraude): (NAO_INFORMADO);
 4.1.9 Validação SPI: Externaliza validações no SPI (PAGAMENTO_RECUSADO_SPI);
4.2 **Casos de erro para validações assíncronas no DICT**
 Neste cenário o pagamento é criado com sucesso (status RCVD) e o consentimento é consumido (status CONSUMED), porém, as validações contra o DICT só ocorrerão de forma assíncrona e em caso de negativa será percebido pela iniciadora na consulta do pagamento (GET /Payments).
 Retorno esperado do endpoint GET /Payments: HTTP Code 200 - OK.
 Status do Pagamento: RJCT (Rejected), com as seguintes opções rejectionReason:
 • Erro por dados inválidos: Conforme item **4.1.7**;
 • Erro por suspeita de fraude: Conforme item **4.1.8**.
version: 2.0.0-rc1.0
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
contact:
name: Governança do Open Finance Brasil – Especificações
email: gt-interfaces@openbankingbr.org
url: 'https://openbanking-brasil.github.io/areadesenvolvedor/'
servers:
- url: 'https://api.banco.com.br/open-banking/payments/v2'
description: Servidor de Produção
- url: 'https://apih.banco.com.br/open-banking/payments/v2'
description: Servidor de Homologação
tags:
- name: Pagamentos
paths:
/consents:
post:
tags:
- Pagamentos
summary: Criar consentimento para a iniciação de pagamento.
operationId: paymentsPostConsents
description: Método de criação do consentimento para a iniciação de pagamento.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
- $ref: '#/components/parameters/XIdempotencyKey'
requestBody:
content:
application/jwt:
schema:
$ref: '#/components/schemas/CreatePaymentConsent'
description: Payload para criação do consentimento para iniciação do pagamento.
required: true
responses:
'201':
$ref: '#/components/responses/201PaymentsConsentsConsentCreated'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'406':
$ref: '#/components/responses/NotAcceptable'
'415':
$ref: '#/components/responses/UnsupportedMediaType'
'422':
$ref: '#/components/responses/UnprocessableEntityConsents'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
description: Erro inesperado.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
security:
- OAuth2ClientCredentials:
- payments
'/consents/{consentId}':
get:
tags:
- Pagamentos
summary: Consultar consentimento para iniciação de pagamento.
operationId: paymentsGetConsentsConsentId
description: Método para consulta do consentimento para a iniciação de pagamento.
parameters:
- $ref: '#/components/parameters/consentId'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
responses:
'200':
$ref: '#/components/responses/200PaymentsConsentsConsentIdRead'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'406':
$ref: '#/components/responses/NotAcceptable'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
description: Erro inesperado.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
security:
- OAuth2ClientCredentials:
- payments
/pix/payments:
post:
tags:
- Pagamentos
summary: Criar iniciação de pagamento.
operationId: paymentsPostPixPayments
description: Método para criar uma iniciação de pagamento.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
- $ref: '#/components/parameters/XIdempotencyKey'
requestBody:
content:
application/jwt:
schema:
$ref: '#/components/schemas/CreatePixPayment'
description: Payload para criação da iniciação do pagamento Pix.
required: true
responses:
'201':
$ref: '#/components/responses/201PaymentsInitiationPixPaymentCreated'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'406':
$ref: '#/components/responses/NotAcceptable'
'415':
$ref: '#/components/responses/UnsupportedMediaType'
'422':
$ref: '#/components/responses/UnprocessableEntityPixPayments'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
description: Erro inesperado.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
security:
- OAuth2AuthorizationCode:
- openid
- 'consent:consentId'
- payments
'/pix/payments/{paymentId}':
get:
tags:
- Pagamentos
summary: Consultar iniciação de pagamento.
operationId: paymentsGetPixPaymentsPaymentId
description: Método para consultar uma iniciação de pagamento.
parameters:
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
responses:
'200':
$ref: '#/components/responses/200PaymentsInitiationPixPaymentIdRead'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'406':
$ref: '#/components/responses/NotAcceptable'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
description: Erro inesperado.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
security:
- OAuth2AuthorizationCode:
- openid
- payments
- OAuth2ClientCredentials:
- payments
patch:
tags:
- Pagamentos
summary: Cancelar iniciação de pagamento.
operationId: paymentsPatchPixPaymentsPaymentId
description: |
Esse endpoint deve ser usado para cancelar, a pedido do cliente pagador, as transações que estejam em uma das seguintes situações: Agendada com sucesso (SCHD), retida para análise (PDNG) ou aguardando autorização de múltiplas alçadas (PATC).
- Caso a requisição seja bem sucedida, a transação vai para a situação CANC.
- Caso o status do pagamento seja diferente de SCHD/PDNG/PATC ou alguma outra regra de negócio impeça o cancelamento, a requisição PATCH retorna HTTP Status 422 com o code PAGAMENTO_NAO_PERMITE_CANCELAMENTO.
- Caso receba um 422, a iniciadora deve fazer uma requisição GET no pagamento para verificar a situação atual dele, bem como detalhes associados.
O cancelamento de pagamento deve ser enviado até 23:59 (Horário de Brasília) do dia anterior à data de efetivação do pagamento.
parameters:
- $ref: '#/components/parameters/paymentId'
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/xFapiAuthDate'
- $ref: '#/components/parameters/xFapiCustomerIpAddress'
- $ref: '#/components/parameters/xFapiInteractionId'
- $ref: '#/components/parameters/xCustomerUserAgent'
requestBody:
content:
application/jwt:
schema:
$ref: '#/components/schemas/PatchPixPayment'
description: Payload para cancelamento do pagamento.
required: true
responses:
'200':
$ref: '#/components/responses/200PatchPixPayments'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'406':
$ref: '#/components/responses/NotAcceptable'
'422':
$ref: '#/components/responses/UnprocessableEntityPixPayments'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'529':
$ref: '#/components/responses/SiteIsOverloaded'
default:
description: Erro inesperado.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
security:
- OAuth2ClientCredentials:
- payments
components:
schemas:
422ResponseErrorCreateConsent:
type: object
required:
- errors
properties:
errors:
type: array
minItems: 1
maxItems: 3
items:
type: object
required:
- code
- title
- detail
properties:
code:
type: string
enum:
- FORMA_PAGAMENTO_INVALIDA
- DATA_PAGAMENTO_INVALIDA
- DETALHE_PGTO_INVALIDO
- PARAMETRO_NAO_INFORMADO
- PARAMETRO_INVALIDO
- ERRO_IDEMPOTENCIA
- NAO_INFORMADO
example: FORMA_PAGAMENTO_INVALIDA
description: |
Códigos de erros previstos na criação de consentimento para a iniciação de pagamentos:
• FORMA_PAGAMENTO_INVALIDA: Forma de pagamento inválida.
• DATA_PAGAMENTO_INVALIDA: Data de pagamento inválida.
• DETALHE_PAGAMENTO_INVALIDO: Detalhe do pagamento inválido.
• PARAMETRO_NAO_INFORMADO: Parâmetro não informado.
• PARAMETRO_INVALIDO: Parâmetro inválido.
• ERRO_IDEMPOTENCIA: Erro idempotência.
• NAO_INFORMADO: Não informado.
title:
type: string
maxLength: 255
pattern: '[\w\W\s]*'
example: Forma de pagamento inválida.
description: |
Título específico do erro reportado, de acordo com o código enviado:
• FORMA_PAGAMENTO_INVALIDA: Forma de pagamento inválida.
• DATA_PAGAMENTO_INVALIDA: Data de pagamento inválida.
• DETALHE_PAGAMENTO_INVALIDO: Detalhe do pagamento inválido.
• PARAMETRO_NAO_INFORMADO: Parâmetro não informado.
• PARAMETRO_INVALIDO: Parâmetro inválido.
• ERRO_IDEMPOTENCIA: Erro idempotência.
• NAO_INFORMADO: Não informado.
detail:
type: string
maxLength: 2048
pattern: '[\w\W\s]*'
example: 'Forma de pagamento [Modalidade] não suportada.'
description: |
Descrição específica do erro de acordo com o código reportado:
• FORMA_PAGAMENTO_INVALIDA: Forma de pagamento [Modalidade] não suportada.
• DATA_PAGAMENTO_INVALIDA: Data de pagamento inválida para a forma de pagamento selecionada.
• DETALHE_PAGAMENTO_INVALIDO: Parâmetro [nome_campo] não obedece às regras de negócio.
• PARAMETRO_NAO_INFORMADO: Parâmetro [nome_campo] obrigatório não informado.
• PARAMETRO_INVALIDO: Parâmetro [nome_campo] não obedece as regras de formatação esperadas.
• ERRO_IDEMPOTENCIA: Conteúdo da mensagem (claim data) diverge do conteúdo associado a esta chave de idempotência (x-idempotency-key).
• NAO_INFORMADO: Não reportado/identificado pela instituição detentora de conta.
meta:
$ref: '#/components/schemas/Meta'
422ResponseErrorCreatePixPayment:
type: object
required:
- errors
properties:
errors:
type: array
minItems: 1
maxItems: 9
items:
type: object
required:
- code
- title
- detail
properties:
code:
$ref: '#/components/schemas/EnumErrorsCreatePayment'
title:
type: string
maxLength: 255
pattern: '[\w\W\s]*'
example: Saldo insuficiente.
description: |
Título específico do erro reportado, de acordo com o código enviado:
• SALDO_INSUFICIENTE: Saldo insuficiente.
• BENEFICIARIO_INCOMPATIVEL: Beneficiário incompatível.
• VALOR_INCOMPATIVEL: Valor da transação incompatível.
• VALOR_ACIMA_LIMITE: Acima do limite estabelecido.
• VALOR_INVALIDO: Valor inválido.
• COBRANCA_INVALIDA: Cobrança inválida.
• CONSENTIMENTO_INVALIDO: Consentimento inválido.
• JANELA_OPER_INVALIDA: Janela de operação inválida.
• PARAMETRO_NAO_INFORMADO: Parâmetro obrigatório não informado.
• PARAMETRO_INVALIDO: Parâmetro com valor inválido.
• NAO_INFORMADO: Não informado.
• PAGAMENTO_DIVERGENTE_CONSENTIMENTO: Divergência entre pagamento e consentimento.
• DETALHE_PAGAMENTO_INVALIDO: Detalhe do pagamento inválido.
• PAGAMENTO_RECUSADO_DETENTORA: Pagamento recusado pela detentora de conta.
• PAGAMENTO_RECUSADO_SPI: Pagamento recusado no Sistema de Pagamentos Instantâneos (SPI).
• ERRO_IDEMPOTENCIA: Erro idempotência.
detail:
type: string
maxLength: 2048
pattern: '[\w\W\s]*'
example: A conta selecionada não possui saldo suficiente para realizar o pagamento.
description: |
Descrição específica do erro de acordo com o código reportado:
• SALDO_INSUFICIENTE: A conta selecionada não possui saldo suficiente para realizar o pagamento.
• BENEFICIARIO_INCOMPATIVEL: O beneficiário informado no consentimento não é o mesmo do esperado pelo DICT.
• VALOR_INCOMPATIVEL: O valor informado no consentimento não é o mesmo valor do informado no payload de pagamento.
• VALOR_ACIMA_LIMITE: O valor (ou quantidade de transações) ultrapassa a faixa de limite parametrizada na detentora para permitir a realização de transações pelo cliente.
• VALOR_INVALIDO: O valor enviado não é válido para o QR Code informado.
• COBRANCA_INVALIDA: Validação de expiração, validação de vencimento ou Status Válido.
• CONSENTIMENTO_INVALIDO: Consentimento inválido (status diferente de "AUTHORISED" ou está expirado).
• JANELA_OPER_INVALIDA: Requisição está fora da janela de funcionamento.
• PARAMETRO_NAO_INFORMADO: endToEndId
• PARAMETRO_INVALIDO: endToEndId
• NAO_INFORMADO: Não reportado/identificado pela instituição detentora de conta.
• PAGAMENTO_DIVERGENTE_CONSENTIMENTO: Dados do pagamento divergentes dos dados do consentimento.
• DETALHE_PAGAMENTO_INVALIDO: Parâmetro [nome_campo] não obedece às regras de negócio.
• PAGAMENTO_RECUSADO_DETENTORA: [descrição do motivo de recusa].
• PAGAMENTO_RECUSADO_SPI: [código de erro conforme tabela de domínios reason PACS.002].
• ERRO_IDEMPOTENCIA: Conteúdo da mensagem (claim data) diverge do conteúdo associado a esta chave de idempotência (x-idempotency-key).
meta:
$ref: '#/components/schemas/Meta'
BusinessEntity:
type: object
description: 'Usuário (pessoa jurídica) que encontra-se logado na instituição Iniciadora de Pagamento. [Restrição] Preenchimento obrigatório se usuário logado na instituição Iniciadora de Pagamento for um CNPJ (pessoa jurídica).'
required:
- document
properties:
document:
type: object
required:
- identification
- rel
properties:
identification:
type: string
maxLength: 14
description: Número do documento de identificação oficial do titular pessoa jurídica.
example: '11111111111111'
pattern: '^\d{14}$'
rel:
type: string
maxLength: 4
description: Tipo do documento de identificação oficial do titular pessoa jurídica.
example: CNPJ
pattern: '^[A-Z]{4}$'
CreatePaymentConsent:
type: object
required:
- data
properties:
data:
type: object
description: Objeto contendo as informações de consentimento para a iniciação de pagamento individual.
required:
- loggedUser
- creditor
- payment
properties:
loggedUser:
$ref: '#/components/schemas/LoggedUser'
businessEntity:
$ref: '#/components/schemas/BusinessEntity'
creditor:
$ref: '#/components/schemas/Identification'
payment:
type: object
description: Objeto contendo dados de pagamento para consentimento.
required:
- type
- currency
- amount
- details
properties:
type:
$ref: '#/components/schemas/EnumPaymentType'
schedule:
oneOf:
- $ref: '#/components/schemas/Schedule'
date:
type: string
format: date
maxLength: 10
pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
example: '2021-01-01'
description: |
[Restrição] Mutuamente excludente com o objeto schedule.
Este campo é obrigatório no caso de pagamento único.
Neste caso, o objeto schedule não deve ser informado.
currency:
type: string
maxLength: 3
pattern: '^([A-Z]{3})$'
example: BRL
description: |
Código da moeda nacional segundo modelo ISO-4217, ou seja, 'BRL'.
Todos os valores monetários informados estão representados com a moeda vigente do Brasil.
amount:
type: string
minLength: 4
maxLength: 19
pattern: '^((\d{1,16}\.\d{2}))$'
example: '100000.12'
description: |
Valor da transação com 2 casas decimais.
ibgeTownCode:
type: string
minLength: 7
maxLength: 7
pattern: '^\d{7}$'
example: '5300108'
description: |
O campo ibgetowncode no arranjo PIX, tem o mesmo comportamento que o campo codMun descrito no item 1.6.6 do manual do PIX, conforme segue:
1. Caso a informação referente ao município não seja enviada; o PSP do recebedor assumirá que não existem feriados estaduais e municipais no período em questão;
details:
$ref: '#/components/schemas/Details'
debtorAccount:
$ref: '#/components/schemas/DebtorAccount'
CreatePixPayment:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/CreatePixPaymentData'
CreatePixPaymentData:
type: object
description: Objeto contendo dados do pagamento e do recebedor (creditor).
required:
- endToEndId
- localInstrument
- payment
- creditorAccount
- cnpjInitiator
properties:
endToEndId:
$ref: '#/components/schemas/EndToEndIdWithoutRestriction'
localInstrument:
$ref: '#/components/schemas/EnumLocalInstrument'
payment:
$ref: '#/components/schemas/PaymentPix'
creditorAccount:
$ref: '#/components/schemas/CreditorAccount'
remittanceInformation:
type: string
maxLength: 140
pattern: '[\w\W\s]*'
example: Pagamento da nota XPTO035-002.
description: |
Deve ser preenchido sempre que o usuário pagador inserir alguma informação adicional em um pagamento, a ser enviada ao recebedor.
qrCode:
type: string
maxLength: 512
pattern: '[\w\W\s]*'
example: |
00020104141234567890123426660014BR.GOV.BCB.PIX014466756C616E6F32303139406578616D706C652E636F6D27300012
BR.COM.OUTRO011001234567895204000053039865406123.455802BR5915NOMEDORECEBEDOR6008BRASILIA61087007490062
530515RP12345678-201950300017BR.GOV.BCB.BRCODE01051.0.080450014BR.GOV.BCB.PIX0123PADRAO.URL.PIX/0123AB
CD81390012BR.COM.OUTRO01190123.ABCD.3456.WXYZ6304EB76
description: |
Sequência de caracteres que corresponde ao QR Code disponibilizado para o pagador.
É a sequência de caracteres que seria lida pelo leitor de QR Code, e deve propiciar o retorno dos dados do pagador após consulta na DICT.
Essa funcionalidade é possível tanto para QR Code estático quanto para QR Code dinâmico.
No arranjo do Pix esta é a mesma sequência gerada e/ou lida pela funcionalidade Pix Copia e Cola.
Este campo deverá ser no formato UTF-8.
[Restrição] Preenchimento obrigatório para pagamentos por QR Code, observado o tamanho máximo de 512 bytes.
proxy:
type: string
maxLength: 77
pattern: '[\w\W\s]*'
example: '12345678901'
description: |
Chave cadastrada no DICT pertencente ao recebedor. Os tipos de chaves podem ser: telefone, e-mail, cpf/cnpj ou chave aleatória.
No caso de telefone celular deve ser informado no padrão E.1641.
Para e-mail deve ter o formato xxxxxxxx@xxxxxxx.xxx(.xx) e no máximo 77 caracteres.
No caso de CPF deverá ser informado com 11 números, sem pontos ou traços.
Para o caso de CNPJ deverá ser informado com 14 números, sem pontos ou traços.
No caso de chave aleatória deve ser informado o UUID gerado pelo DICT, conforme formato especificado na RFC41223.
Se informado, a detentora da conta deve validar o proxy no DICT quando localInstrument for igual a DICT, QRDN ou QRES e validar o campo creditorAccount.
Esta validação é opcional caso o localInstrument for igual a INIC.
[Restrição] Se localInstrument for igual a MANU, o campo proxy não deve ser preenchido. Se localInstrument for igual INIC, DICT, QRDN ou QRES, o campo proxy deve ser sempre preenchido com a chave Pix.
cnpjInitiator:
type: string
pattern: '^\d{14}$'
maxLength: 14
example: '50685362000135'
description: CNPJ do Iniciador de Pagamento devidamente habilitado para a prestação de Serviço de Iniciação no Pix.
transactionIdentification:
type: string
pattern: '^[a-zA-Z0-9]{1,35}$'
maxLength: 35
example: E00038166201907261559y6j6
description: |
Trata-se de um identificador de transação que deve ser retransmitido intacto pelo PSP do pagador ao gerar a ordem de pagamento. Essa informação permitirá ao recebedor identificar e correlacionar a transferência, quando recebida, com a apresentação das instruções ao pagador.
Os caracteres permitidos no contexto do Pix para o campo txid (EMV 62-05) são:
- Letras minúsculas, de ‘a’ a ‘z’
- Letras maiúsculas, de ‘A’ a ‘z’
- Dígitos decimais, de ‘0’ a ‘9’
[Restrição] Preenchimento condicional de acordo com o conteúdo do campo localInstument:
– MANU - O campo transactionIdentification não deve ser preenchido.
– DICT - O campo transactionIdentification não deve ser preenchido.
– INIC - O campo transactionIdentification deve ser preenchido obrigatoriamente e deve conter até 25 caracteres alfanuméricos ([a-z|A-Z|0-9]).
– QRES - Caso o QR Code estático possua o dado <i><<i/>TxId<i>><i/> preenchido, o campo transactionIdentification deverá ser preenchido com este valor, caso o QR Code não possua o <i><<i/>TxId<i>><i/> o campo transactionIdentification não deverá ser preenchido. O <i><<i/>TxId<i>><i/> deve conter até 25 caracteres alfanuméricos ([a-z|A-Z|0-9]).
– QRDN - Será obrigatório seu preenchimento com o <i><<i/>TxId<i>><i/> do payload JSON do QR Code dinâmico. O <i><<i/>TxId<i>><i/> deve conter entre 26 e 35 caracteres alfanuméricos ([a-z|A-Z|0-9]).
A detentora de conta deve validar se a condicionalidade e o formato do campo foram atendidas pela iniciadora de pagamento.
ibgeTownCode:
type: string
minLength: 7
maxLength: 7
pattern: '^\d{7}$'
example: '5300108'
description: |
O campo ibgetowncode no arranjo PIX, tem o mesmo comportamento que o campo codMun descrito no item 1.6.6 do manual do PIX, conforme segue:
1. Caso a informação referente ao município não seja enviada; o PSP do recebedor assumirá que não existem feriados estaduais e municipais no período em questão;
CreditorAccount:
type: object
description: |
Objeto que contém a identificação da conta de destino do beneficiário/recebedor.
required:
- ispb
- number
- accountType
properties:
ispb:
type: string
minLength: 8
maxLength: 8
pattern: '^[0-9]{8}$'
example: '12345678'
description: |
Deve ser preenchido com o ISPB (Identificador do Sistema de Pagamentos Brasileiros) do participante do SPI (Sistema de pagamentos instantâneos) somente com números.
issuer:
type: string
minLength: 1
maxLength: 4
pattern: '^[0-9]{1,4}$'
example: '1774'
description: |
Código da Agência emissora da conta sem dígito.
(Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito,
no exercício de atividades da instituição, não podendo ser móvel ou transitória).
[Restrição] Preenchimento obrigatório para os seguintes tipos de conta: CACC (CONTA_DEPOSITO_A_VISTA), SVGS (CONTA_POUPANCA) e SLRY (CONTA_SALARIO).
number:
type: string
minLength: 1
maxLength: 20
pattern: '^[0-9]{1,20}$'
example: '1234567890'
description: |
Deve ser preenchido com o número da conta do usuário recebedor, com dígito verificador (se este existir),
se houver valor alfanumérico, este deve ser convertido para 0.
accountType:
$ref: '#/components/schemas/EnumAccountPaymentsType'
DebtorAccount:
type: object
description: |
Objeto que contém a identificação da conta de origem do pagador.
As informações quanto à conta de origem do pagador poderão ser trazidas no consentimento para a detentora, caso a iniciadora tenha coletado essas informações do cliente. Do contrário, será coletada na detentora e trazida para a iniciadora como resposta à criação do pagamento.
required:
- ispb
- number
- accountType
properties:
ispb:
type: string
minLength: 8
maxLength: 8
pattern: '^[0-9]{8}$'
example: '12345678'
description: |
Deve ser preenchido com o ISPB (Identificador do Sistema de Pagamentos Brasileiros) do participante do SPI (Sistema de pagamentos instantâneos) somente com números.
issuer:
type: string
minLength: 1
maxLength: 4
pattern: '^[0-9]{1,4}$'
example: '1774'
description: |
Código da Agência emissora da conta sem dígito.
(Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito,
no exercício de atividades da instituição, não podendo ser móvel ou transitória).
[Restrição] Preenchimento obrigatório para os seguintes tipos de conta: CACC (CONTA_DEPOSITO_A_VISTA), SVGS (CONTA_POUPANCA) e SLRY (CONTA_SALARIO).
number:
type: string
minLength: 1
maxLength: 20
pattern: '^[0-9]{1,20}$'
example: '1234567890'
description: |
Deve ser preenchido com o número da conta transacional do usuário pagador, com dígito verificador (se este existir),
se houver valor alfanumérico, este deve ser convertido para 0.
accountType:
$ref: '#/components/schemas/EnumAccountPaymentsType'
Details:
type: object
description: |
Objeto contendo os detalhes do pagamento.
required:
- localInstrument
- creditorAccount
properties:
localInstrument:
$ref: '#/components/schemas/EnumLocalInstrument'
qrCode:
type: string
maxLength: 512
pattern: '[\w\W\s]*'
example: |
00020104141234567890123426660014BR.GOV.BCB.PIX014466756C616E6F32303139406578616D706C652E636F6D27300012
BR.COM.OUTRO011001234567895204000053039865406123.455802BR5915NOMEDORECEBEDOR6008BRASILIA61087007490062
530515RP12345678-201950300017BR.GOV.BCB.BRCODE01051.0.080450014BR.GOV.BCB.PIX0123PADRAO.URL.PIX/0123AB
CD81390012BR.COM.OUTRO01190123.ABCD.3456.WXYZ6304EB76
description: |
Sequência de caracteres que corresponde ao QR Code disponibilizado para o pagador.
É a sequência de caracteres que seria lida pelo leitor de QR Code, e deve propiciar o retorno dos dados do pagador após consulta na DICT.
Essa funcionalidade é possível tanto para QR Code estático quanto para QR Code dinâmico.
No arranjo do Pix esta é a mesma sequência gerada e/ou lida pela funcionalidade Pix Copia e Cola.
Este campo deverá ser no formato UTF-8.
[Restrição] Preenchimento obrigatório para pagamentos por QR Code, observado o tamanho máximo de 512 bytes.
proxy:
type: string
maxLength: 77
pattern: '[\w\W\s]*'
example: '12345678901'
description: |
Chave cadastrada no DICT pertencente ao recebedor. Os tipos de chaves podem ser: telefone, e-mail, cpf/cnpj ou chave aleatória.
No caso de telefone celular deve ser informado no padrão E.1641.
Para e-mail deve ter o formato xxxxxxxx@xxxxxxx.xxx(.xx) e no máximo 77 caracteres.
No caso de CPF deverá ser informado com 11 números, sem pontos ou traços.
Para o caso de CNPJ deverá ser informado com 14 números, sem pontos ou traços.
No caso de chave aleatória deve ser informado o UUID gerado pelo DICT, conforme formato especificado na RFC41223.
Se informado, a detentora da conta deve validar o proxy no DICT quando localInstrument for igual a DICT, QRDN ou QRES e validar o campo creditorAccount.
Esta validação é opcional caso o localInstrument for igual a INIC.
[Restrição]
Se localInstrument for igual a MANU, o campo proxy não deve ser preenchido.
Se localInstrument for igual INIC, DICT, QRDN ou QRES, o campo proxy deve ser sempre preenchido com a chave Pix.
creditorAccount:
$ref: '#/components/schemas/CreditorAccount'
EndToEndId:
type: string
minLength: 32
maxLength: 32
pattern: '^([E])([0-9]{8})([0-9]{4})(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])(2[0-3]|[01][0-9])([0-5][0-9])([a-zA-Z0-9]{11})$'
example: E9040088820210128000800123873170
description: |
Trata-se de um identificador único, gerado na instituição iniciadora de pagamento e recebido na instituição detentora de conta, permeando toda a jornada do pagamento Pix.
[Restrição] A detentora deve obrigatoriamente retornar o campo Com o mesmo valor recebido da iniciadora.
EndToEndIdWithoutRestriction:
type: string
minLength: 32
maxLength: 32
pattern: '^([E])([0-9]{8})([0-9]{4})(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])(2[0-3]|[01][0-9])([0-5][0-9])([a-zA-Z0-9]{11})$'
example: E9040088820210128000800123873170
description: |
Deve ser preenchido no formato padrão ExxxxxxxxyyyyMMddHHmmkkkkkkkkkkk (32 caracteres; “case sensitive”, isso é, diferencia letras maiúsculas e minúsculas), sendo:
• “E” – fixo (1 caractere);
• xxxxxxxx – identificação do agente que gerou o ´EndToEndId´, podendo ser: o ISPB do participante direto ou o ISPB do participante indireto (8 caracteres numéricos [0-9]);
• yyyyMMddHHmm – data, hora e minuto (12 caracteres), seguindo o horário UTC, da submissão da ordem de pagamento, caso a liquidação seja prioritária, ou prevista para o envio da ordem ao sistema de liquidação, caso seja realizado um agendamento. Para ordens prioritárias e não prioritárias, aceita-se o preenchimento, pelo agente que gerou o ´EndToEndId´, com uma tolerância máxima de 12 horas, para o futuro e para o passado, em relação ao horário efetivo de processamento da ordem pelo SPI;
• kkkkkkkkkkk – sequencial criado pelo agente que gerou o ´EndToEndId´ (11 caracteres alfanuméricos [a-z/A-Z/0-9]). Deve ser único dentro de cada “yyyyMMddHHmm”.
Admite-se que o ´EndToEndId´ seja gerado pelo participante direto, pelo participante indireto ou pelo iniciador de pagamento.
Ele deve ser único, não podendo ser repetido em qualquer outra operação enviada ao SPI.
No caso de Pix agendamento, a iniciadora deverá, no que tange a composição do endToEndId, utilizar a data para a qual o Pix está sendo agendado e horário fixo 15:00 UTC, que dará para a detentora a janela de efetivação de 00:00 e 23:59 do horário de Brasília.
EnumAccountPaymentsType:
type: string
enum:
- CACC
- SLRY
- SVGS
- TRAN
example: CACC
description: |
Tipos de contas usadas para pagamento via Pix.
Modalidades tradicionais previstas pela Resolução 4.753, não contemplando contas vinculadas,
conta de domiciliados no exterior, contas em moedas estrangeiras e conta correspondente moeda eletrônica.
Segue descrição de cada valor do ENUM para o escopo do Pix.
CACC - Current - Conta Corrente.
SLRY - Salary - Conta-Salário.
SVGS - Savings - Conta de Poupança.
TRAN - TransactingAccount - Conta de Pagamento pré-paga.
EnumAuthorisationStatusType:
type: string
enum:
- AWAITING_AUTHORISATION
- AUTHORISED
- REJECTED
- CONSUMED
example: AWAITING_AUTHORISATION
description: |
Retorna o estado do consentimento, o qual no momento de sua criação será AWAITING_AUTHORISATION.
Este estado será alterado depois da autorização do consentimento na detentora da conta do pagador (Debtor) para AUTHORISED ou REJECTED.
O consentimento fica no estado CONSUMED após ocorrer a iniciação do pagamento referente ao consentimento.
Em caso de consentimento expirado a detentora deverá retornar o status REJECTED.
Estados possíveis:
AWAITING_AUTHORISATION - Aguardando autorização
AUTHORISED - Autorizado
REJECTED - Rejeitado
CONSUMED - Consumido
EnumErrorsCreatePayment:
type: string
enum:
- SALDO_INSUFICIENTE
- BENEFICIARIO_INCOMPATIVEL
- VALOR_INCOMPATIVEL
- VALOR_ACIMA_LIMITE
- VALOR_INVALIDO
- COBRANCA_INVALIDA
- CONSENTIMENTO_INVALIDO
- JANELA_OPER_INVALIDA
- PARAMETRO_NAO_INFORMADO
- PARAMETRO_INVALIDO
- NAO_INFORMADO
- PAGAMENTO_DIVERGENTE_CONSENTIMENTO
- DETALHE_PAGAMENTO_INVALIDO
- PAGAMENTO_RECUSADO_DETENTORA
- PAGAMENTO_RECUSADO_SPI
- ERRO_IDEMPOTENCIA
example: SALDO_INSUFICIENTE
description: |
Códigos de erros previstos na criação da iniciação de pagamento:
• SALDO_INSUFICIENTE: Esta conta não possui saldo suficiente para realizar o pagamento.
• BENEFICIARIO_INCOMPATIVEL: O beneficiário informado no consentimento não é o mesmo do esperado pelo DICT.
• VALOR_INCOMPATIVEL: O valor informado no consentimento não é o mesmo valor do informado no payload de pagamento.
• VALOR_ACIMA_LIMITE: O valor (ou quantidade de transações) ultrapassa a faixa de limite parametrizada na detentora para permitir a realização de transações pelo cliente.
• VALOR_INVALIDO: O valor enviado não é válido para o QR Code informado.
• COBRANCA_INVALIDA: Validação de expiração, validação de vencimento, Status Válido.
• CONSENTIMENTO_INVALIDO: Consentimento inválido (status não é "authorised" ou está expirado).
• JANELA_OPER_INVALIDA: Requisição está fora da janela de funcionamento.